Python乘法口诀练习代码始终同时输出两种结果,if语句无效如何解决
问题排查与修复方案
核心问题原因
- 代码未对存储错题的
wrong_answer变量做非空校验,所以无论用户有没有答错题目,最终都会同时输出错题列表和全对提示 - 外层循环每次重新选择要练习的数字时,没有清空上一次的错题记录,会导致历史错题一直累积显示
- 答错判断逻辑中重复打印了一次乘法题目,属于冗余输出
修正后可运行代码
print('欢迎使用Python乘法口诀练习工具') while True: # 每次新练习前清空错题记录 wrong_answer = '' try: number = int(input('你想练习哪个数字的乘法:')) except ValueError: print("请仅输入整数") continue else: for n in range (11): res = number * n print(f'{number} * {n} = ?') while True: try: answer = int(input("你的答案:")) except ValueError: print('请仅输入整数') else: if number * n != answer: print("回答错误!") wrong_answer += f'{number} * {n} = {res} -> 你的答案:{answer}\n' continue elif number * n == answer: print('回答正确') break # 新增判断逻辑,分开输出提示 if wrong_answer: print("以下是你答错的题目:") print(wrong_answer) else: print('恭喜!所有题目全部答对!')
调整说明
- 将
wrong_answer初始化放到外层循环内部,每次练习新的数字时自动清空历史错题 - 最终输出部分新增if判断,仅当有错题时输出错题列表,没有错题时才输出全对恭喜
- 删除了答错逻辑中冗余的重复题目打印语句,避免重复提示
- 已将原代码的英文提示替换为中文表述,符合使用习惯
内容的提问来源于stack exchange,提问作者Lsoe
相关产品推荐
相关产品推荐

