鱼C论坛

 找回密码
 立即注册
查看: 135|回复: 2

[已解决]python小白,自己仿照小甲鱼写了一个数字运算游戏,算对了但python说不对

[复制链接]
发表于 2025-3-8 16:50:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

import random
a = random.randint(1,10)
b = random.randint(1,10)

print("已知a=",a)
print("已知b=",b)
print("你一共有三次机会")
life = 3

real_answer = a+b
while life > 0:
    your_answer = input("a+b=")
    int(your_answer)
    if your_answer == real_answer :
             print("正确!")
             break
    else:
             print("错误,再来")
             life = life-1
print("游戏结束")
——————————————————
结果就是即使输入了正确答案,但是Python依然认为错误
最佳答案
2025-3-8 17:24:20
int(your_answer) 不会直接改变 your_answer ,而是返回一个整数, your_answer 没有变成整数,还是字符串
所以,应使用
your_answer = int(your_answer)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-3-8 16:55:02 | 显示全部楼层
在你的代码中,问题出现在你把用户输入的 your_answer 转换为整数的过程中并没有将其进行赋值后进行比较,导致类型不匹配。可以在转换后重新赋值或者直接在比较时进行转换。你可以做如下修改:
import random
a = random.randint(1, 10)
b = random.randint(1, 10)

print("已知a=", a)
print("已b=", b)
print("你一共有三次机会")
life = 3

real_answer = a + b
while life > 0:
    your_answer = int(input("a+b="))  # 直接在这里将输入转换为整数
    if your_answer == real_answer:
        print("正确!")
        break
    else:
        print("错误,再来")
        life -= 1  # 这里可以用 -= 来简化写法

print("游戏结束")

关键的修改在于:

1. 在输入时就将 your_answer 转换为整数:`your_answer = int(input("a+b="))`。
2. 在减少 life 值的时候,可以使用组合赋值运算符:life -= 1

这样你的代码就能够正常判断用户输入的答案是否正确了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-8 17:24:20 | 显示全部楼层    本楼为最佳答案   
int(your_answer) 不会直接改变 your_answer ,而是返回一个整数, your_answer 没有变成整数,还是字符串
所以,应使用
your_answer = int(your_answer)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-2 02:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表