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

Python猜数字游戏问题:if语句失效、投注限制异常

问题分析与代码修复

投注50+金币被限制的原因

你把coins和bet都定义成了字符串类型,字符串比较是按字符的ASCII值来的,不是数字大小。比如"50"和"100"比的时候,第一个字符"5"的ASCII值比"1"大,所以会判定"50" > "100"为True,直接触发投注超限的提示。

猜对错判断失效的原因

  1. highlow是input()返回的字符串,你却拿它和整数1、2比,永远不可能相等,所以所有判断分支都走不进去;
  2. num1和num2也被转成了字符串,数字比较逻辑全错——比如字符串"10"会被认为比"9"小;
  3. 后面写的elif num2 < num1和前面的if num1 > num2是完全一样的条件,纯冗余,还没处理两个数字相等的情况。

修复后的完整代码

import random
import time

coins = 100  # 改成整数,别用字符串
print(f"you have {coins} coins")
num1 = random.randint(1, 20)  # 保留整数类型
print(num1)

# input里直接写提示,不用套print
highlow = input("do you think the next number between 1 and 20 is higher(1) or lower(2): ")
# 把投注金额转成整数,顺便处理输入非数字的情况
try:
    bet = int(input("how much coins do you want to bet? "))
except ValueError:
    print("请输入有效的数字")
    time.sleep(3)
    quit()

if bet == coins:
    print("you bet all your coins")
elif bet > coins:
    print(f"you can't bet that many coins, you only have {coins} coins")
    time.sleep(3)
    quit()
else:
    print(f"you bet {bet} coins")

time.sleep(3)
num2 = random.randint(1, 20)
print(f"the second number was {num2}")
time.sleep(1)

# 正确的数字比较逻辑
if num1 > num2:
    if highlow == "2":
        print("the second number was lower, you won")
        coins += bet
    elif highlow == "1":
        print("the second number was lower, you lost")
        coins -= bet
    else:
        print("输入无效,请选择1或2")
elif num1 < num2:
    if highlow == "1":
        print("the second number was higher, you won")
        coins += bet
    elif highlow == "2":
        print("the second number was higher, you lost")
        coins -= bet
    else:
        print("输入无效,请选择1或2")
else:
    print("两个数字相等,平局")

time.sleep(1)
print(f"you have {coins} coins")

核心修复点

  • 把coins、bet、num1、num2都改成整数类型,确保数字比较逻辑正确;
  • 修正input()的用法:input()本身可以直接传提示文本,不需要嵌套print();
  • 调整highlow的比较:要么把它转成整数,要么和字符串"1"/"2"比较;
  • 补充了数字相等的处理分支,以及无效输入的提示;
  • 用f-string替代字符串拼接,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:22:32