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

Python代码判断加法结果相等却返回No,需实现循环输入直至退出

问题1:明明答案正确却输出"No"的原因

input()函数获取的用户输入是字符串类型,而added是两个整数相加得到的整数类型,Python里不同类型的值直接比较永远不相等——哪怕数值完全一样,比如输入的"3"和整数3,比较结果也是False,所以会走else分支输出"No"。

解决方法:把用户输入转成整数,同时加入异常处理避免非数字输入导致程序崩溃:

# 替换原answer行的写法
try:
    answer = int(input("What is " + str(num_1) + " + " + str(num_2) + " = "))
except ValueError:
    print("请输入有效数字!")
    continue

问题2:实现重复答题直到主动退出

用while循环构建无限答题流程,同时给用户提供退出触发条件(比如输入"quit"退出)。完整修改后的代码如下:

import random

score = 0
print("加法答题游戏!输入'quit'可退出")

while True:
    num_1 = random.randrange(1, 15)
    num_2 = random.randrange(1, 15)
    added = num_1 + num_2
    user_input = input(f"What is {num_1} + {num_2} = ")
    
    # 判断是否退出游戏
    if user_input.lower() == 'quit':
        print(f"游戏结束!你的得分是:{score}")
        break
    
    # 处理数字输入并判断答案
    try:
        answer = int(user_input)
        if added == answer:
            print("Yes")
            score += 1
        else:
            print(f"No,正确答案是{added}")
    except ValueError:
        print("请输入有效数字或'quit'退出!")

关键改动说明

  • 用while True创建无限循环,直到用户输入'quit'时执行break退出流程
  • 用user_input.lower()统一判断逻辑,不管用户输入'Quit'还是'QUIT'都能识别退出指令
  • 加入try-except捕获非数字输入的异常,避免程序直接崩溃
  • 用f-string简化了题目字符串的拼接,代码更简洁易读

内容的提问来源于stack exchange,提问作者Code_Rik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:35:23