You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:06:03