Python新手如何实现可依次询问不同问题并判断正误的测验程序
现有代码的问题
- 原代码中
main和quiz互相调用属于无限递归,不仅会永远重复提问同一个问题,运行久了还会触发Python的递归深度限制报错 main函数里只写死了单个问题的内容,没有预设其他问题,也没有切换问题的逻辑
改后可直接运行的代码
def quiz(que, ans): # 接收单道题的问题和正确答案,完成用户作答校验逻辑 user_answer = input(f'{que}?: ') print() if ans.upper() == user_answer.upper(): print('回答正确!') else: print(f'很抱歉,正确答案是{ans}') print('-' * 30) def main(): # 所有题库存在这个列表里,新增题目直接按格式加条目即可 question_bank = [ ("加利福尼亚州的首府是什么", "萨克拉门托"), ("纽约州的首府是什么", "奥尔巴尼"), ("得克萨斯州的首府是什么", "奥斯汀") # 新增格式:('问题内容', '正确答案') ] # 遍历题库挨个出题 for que, ans in question_bank: quiz(que, ans) print("所有题目已作答完毕") if __name__ == '__main__': main()
逻辑说明
- 把所有题目和对应答案提前存到列表里,通过循环遍历的方式逐个出题,不需要用到递归调用,逻辑更清晰
- 后续要新增题目只需要往
question_bank列表里加对应条目即可,不需要修改其他逻辑 - 如果需要保留英文出题,把列表里的问题和答案替换成英文内容即可
内容的提问来源于stack exchange,提问作者pythonnoob
相关产品推荐
相关产品推荐

