liudarkmoon 发表于 2020-11-26 02:21:39

第三讲if guess == 后写中文怎么修改都不能运行中文

本帖最后由 liudarkmoon 于 2020-11-26 02:22 编辑

if guess == 后写中文怎么修改都不能运行中文,换成数字就可以运行
连格式改成一模一样也不行
不知道为啥不能加图
=============== RESTART: /Users/aziaihesudashui/Documents/game.py ==============
你最好尽快猜对游歌想做什么:录明细
Traceback (most recent call last):
File "/Users/aziaihesudashui/Documents/game.py", line 4, in <module>
    guess = int(temp)
ValueError: invalid literal for int() with base 10: '录明细'
>>>
报错如上
""" 用python设计的第一个游戏 """

temp = input("你最好尽快猜对游歌想做什么:")
guess = int(temp)

if guess == "录明细":
    print("终于猜对了,看来你已更进一步!")
    print("可以进行下一步的学习啦")
else:
    print("猜错了,你为什么这么蠢,伤心!")
   
print("游戏结束!睡觉去!")

伊格利斯 发表于 2020-11-26 04:35:11

int()是整型啊,改成str(temp)试下

Lc84520 发表于 2020-11-26 05:02:33

int() 用于将指定的值转换成整数。

_2_ 发表于 2020-11-26 06:27:10

伊格利斯 发表于 2020-11-26 04:35
int()是整型啊,改成str(temp)试下

本身已经是字符串了为什么还要用 str() 呢

heidern0612 发表于 2020-11-26 07:40:33

temp本身就已经是字符串了,为啥下面还要int一下给他转换成整形呢?只有纯数字才能int化。

逃兵 发表于 2020-11-26 08:23:08

本帖最后由 逃兵 于 2020-11-26 08:24 编辑

int函数是将变量变为整型
而我们输入的汉字是字符串类型,无法变成整型
在这里直接给guess赋值就可以了

附源码

""" 用python设计的第一个游戏 """

temp = input("你最好尽快猜对游歌想做什么:")
guess = temp
if guess == "录明细":
    print("终于猜对了,看来你已更进一步!")
    print("可以进行下一步的学习啦")
else:
    print("猜错了,你为什么这么蠢,伤心!")
   
print("游戏结束!睡觉去!")

Twilight6 发表于 2020-11-26 09:20:20


楼主对 input 函数和 int 函数理解不够,导致出现这样的问题

input 是接收用户输入的信息,并将其转换为字符串

而 int 函数,是将纯整数字符串转换为整形(既整数)

所以此时,如果你要用 guess 猜字符时,只要把 guess = int(temp)删除即可

因为你输入中文或者字母、字符时,int函数无法转换其为一个整数导致报错


伊格利斯 发表于 2020-11-27 21:52:28

_2_ 发表于 2020-11-26 06:27
本身已经是字符串了为什么还要用 str() 呢

因为我也是新手啊,这样不报错也能运行

_2_ 发表于 2020-11-28 08:47:04

伊格利斯 发表于 2020-11-27 21:52
因为我也是新手啊,这样不报错也能运行

……我并没说会报错,只是这样做多此一举
页: [1]
查看完整版本: 第三讲if guess == 后写中文怎么修改都不能运行中文