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

为何if条件判断始终执行不等分支?数值相等仍输出'Sorry'

问题原因分析与修复方案

嘿,这个问题的核心原因其实很简单——类型不匹配!

你看,代码里的guess是通过input()函数获取的,而input()返回的永远是字符串类型的值;但另一边value是random.randint()生成的,这是个整数类型的随机数。在Python里,不同数据类型的值做相等比较时,结果永远是False,哪怕它们的“字面数值”看起来一样(比如字符串"5"和整数5)。

所以不管你输入的数字和随机生成的数值是不是真的相等,value != guess这个条件都会成立,自然每次都会输出"Sorry"了。

修复方案

只需要把获取guess的那行代码,加上类型转换,把输入的字符串转成整数就行:

import random
high_number = input("What is the maximum number?\nExample(20): ")
print('0-{}'.format(high_number))
# 这里加上int()转换,将输入的字符串转为整数
guess = int(input("Guess the number: "))
high_number = int(high_number)
value = random.randint(0, high_number)
if value != guess:
    print("Sorry.")
elif value == guess:
    print("Hurray!")

如果你想让程序更健壮,还可以额外加个异常处理逻辑,防止用户输入非数字内容导致程序报错,但这属于优化项,解决核心问题只需要完成上面的类型转换就够了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:21:24