lyk0215 发表于 2022-6-17 09:22:46

初学者的小问题

小游戏可以运行 为啥 回答(玩) 就报错?
temp =input("你玩lol吗?:")
guess =int(temp)
if guess == 玩:
    print("一起玩啊!")
    print("大家一起开黑")
else:
    print("可惜!")
print("不好玩 不玩啦!")   


你玩lol吗?:玩
Traceback (most recent call last):
File "C:/Users/Admin/AppData/Local/Programs/Python/Python310/1.py", line 2, in <module>
    guess =int(temp)
ValueError: invalid literal for int() with base 10: '玩'

蒜爆泥鳅 发表于 2022-6-17 09:47:46

玩字是字符串呀,不用int的。
temp =input("你玩lol吗?:")
guess =temp
if guess == "玩":
    print("一起玩啊!")
    print("大家一起开黑")
else:
    print("可惜!")
print("不好玩 不玩啦!")   

Victor0321 发表于 2022-6-17 10:08:17

input() 返回值是str型 ,没有办法int()

临时号 发表于 2022-6-17 12:48:00

int(s)函数的意思是将s字符串转化为数字,玩不是数字,用int函数转化时会报出无法转化的错误
你的程序还有一个问题就是if guess == 玩:这行中,玩是一个字符串,在python字符串需要用引号包围,但你这里没有,python就会将玩当成变量来识别,就会报出错误:玩这个变量没有被定义,所以需要给玩加上引号
guess=input("你玩lol吗?:")
if guess == "玩":
    print("一起玩啊!")
    print("大家一起开黑")
else:
    print("可惜!")
print("不好玩 不玩啦!")

白two 发表于 2022-6-17 13:16:18

学会看报错:
    guess =int(temp)
ValueError: invalid literal for int() with base 10: '玩'

guess =int(temp) 出的错, 报错信息是: ValueError: invalid literal for int() with base 10: '玩'

也就是 temp 这个值不能 int

你得理解 guess =int(temp) 是干嘛的, 他是猜数字里面的, 需要把输入的字符串类型变成整型, 才能和后面的数字进行比较, 比大小之类的
而字符串之间的关系就不需要这玩意了
页: [1]
查看完整版本: 初学者的小问题