肖公子 发表于 2023-6-7 16:50:42

为什么会报错?

这是我按照视频小游戏写的代码,为什么输入内容就会报错?


static/image/hrline/line7.png


temp = input("请输入您的名字:")
name = int(temp)

if name == 小甲鱼:
    print("你好,小甲鱼!")

isdkz 发表于 2023-6-7 16:51:34

本帖最后由 isdkz 于 2023-6-7 16:54 编辑

这段代码有几个问题。首先,你正在尝试将输入的字符串转换为整数,这在输入的内容不是数值时会导致错误。其次,你在if语句中比较的对象"小甲鱼"没有被引号括起来,所以 Python 将其视为未定义的变量,从而引发错误。

下面是修改后的代码:

name = input("请输入您的名字:")

if name == "小甲鱼":
    print("你好,小甲鱼!")

在此代码中,我们接收用户的输入并将其存储为字符串,然后将此字符串与 "小甲鱼" 进行比较。如果它们相等,我们就打印出 "你好,小甲鱼!"

liuhongrun2022 发表于 2023-6-7 16:52:38

没加双引号
改成:
temp = input("请输入您的名字:")
name = int(temp)

if name == "小甲鱼":
    print("你好,小甲鱼!")

肖公子 发表于 2023-6-7 17:03:15

liuhongrun2022 发表于 2023-6-7 16:52
没加双引号
改成:

按照我原来这个,加不加都是一样的报错,我试过

肖公子 发表于 2023-6-7 17:04:29

isdkz 发表于 2023-6-7 16:51
这段代码有几个问题。首先,你正在尝试将输入的字符串转换为整数,这在输入的内容不是数值时会导致错误。其 ...

请问temp = input() 这个到底代表什么,为什么小甲鱼的游戏里就能用,我抄了就不能用

liuhongrun2022 发表于 2023-6-7 17:09:13

肖公子 发表于 2023-6-7 17:03
按照我原来这个,加不加都是一样的报错,我试过

看错了,int 这行删去,变量改个名
temp = input("请输入您的名字:")

if temp == "小甲鱼":
    print("你好,小甲鱼!")

liuhongrun2022 发表于 2023-6-7 17:14:37

肖公子 发表于 2023-6-7 17:04
请问temp = input() 这个到底代表什么,为什么小甲鱼的游戏里就能用,我抄了就不能用

input 没有错,你不能加 int,那是整数

isdkz 发表于 2023-6-7 17:37:26

肖公子 发表于 2023-6-7 17:04
请问temp = input() 这个到底代表什么,为什么小甲鱼的游戏里就能用,我抄了就不能用

temp = input() 就是输入一个字符串呀,这个没有什么问题,只不过你的不需要转成整数

所以我就把 name = int(temp) 去掉直接用 name = input() 了

tengke 发表于 2023-6-7 18:02:57


temp = input("请输入您的名字:")
name = temp
print(temp)

if name == "小甲鱼":
    print("你好,小甲鱼!")

sfqxx 发表于 2023-6-7 18:03:05

这段代码会报错,因为在第三行尝试将输入的字符串类型的名字转换成整数类型。而在下面的if语句中,判断条件是 `name == "小甲鱼"`,这里"小甲鱼"是字符串类型,与前面的变量类型不一致,所以 if 语句无法执行。

要想使代码能够正常执行,可以改成以下的方式:


name = input("请输入您的名字:")# 不需要进行 int 转换

if name == "小甲鱼":
    print("你好,小甲鱼!")

这样就可以成功运行并输出 "你好,小甲鱼!" 了。

求最佳答案{:10_254:}

肖公子 发表于 2023-6-8 15:21:09

liuhongrun2022 发表于 2023-6-7 17:09
看错了,int 这行删去,变量改个名

好的,感谢

肖公子 发表于 2023-6-8 15:21:36

liuhongrun2022 发表于 2023-6-7 17:14
input 没有错,你不能加 int,那是整数

好的,这点懂了,谢谢

肖公子 发表于 2023-6-8 15:22:30

isdkz 发表于 2023-6-7 17:37
temp = input() 就是输入一个字符串呀,这个没有什么问题,只不过你的不需要转成整数

所以我就把 name ...

懂了,谢谢

肖公子 发表于 2023-6-8 15:23:51

tengke 发表于 2023-6-7 18:02
temp = input("请输入您的名字:")
name = temp
print(temp)


谢谢
页: [1]
查看完整版本: 为什么会报错?