鱼C论坛

 找回密码
 立即注册
查看: 1797|回复: 13

[已解决]为什么会报错?

[复制链接]
发表于 2023-6-7 16:50:42 | 显示全部楼层 |阅读模式

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

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

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



                               
登录/注册后可看大图



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

if name == 小甲鱼:
    print("你好,小甲鱼!")
最佳答案
2023-6-7 18:03:05
这段代码会报错,因为在第三行尝试将输入的字符串类型的名字转换成整数类型。而在下面的if语句中,判断条件是 `name == "小甲鱼"`,这里"小甲鱼"是字符串类型,与前面的变量类型不一致,所以 if 语句无法执行。

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

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

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

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

求最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-7 16:51:34 | 显示全部楼层
本帖最后由 isdkz 于 2023-6-7 16:54 编辑

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

下面是修改后的代码:
name = input("请输入您的名字:")

if name == "小甲鱼":
    print("你好,小甲鱼!")
在此代码中,我们接收用户的输入并将其存储为字符串,然后将此字符串与 "小甲鱼" 进行比较。如果它们相等,我们就打印出 "你好,小甲鱼!"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-7 16:52:38 | 显示全部楼层
没加双引号
改成:
temp = input("请输入您的名字:")
name = int(temp)

if name == "小甲鱼":
    print("你好,小甲鱼!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 17:03:15 | 显示全部楼层
liuhongrun2022 发表于 2023-6-7 16:52
没加双引号
改成:

按照我原来这个,加不加都是一样的报错,我试过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

请问temp = input() 这个到底代表什么,为什么小甲鱼的游戏里就能用,我抄了就不能用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-6-7 17:09:13 | 显示全部楼层
肖公子 发表于 2023-6-7 17:03
按照我原来这个,加不加都是一样的报错,我试过

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

if temp == "小甲鱼":
    print("你好,小甲鱼!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

input 没有错,你不能加 int,那是整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

所以我就把 name = int(temp) 去掉直接用 name = input() 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-7 18:02:57 | 显示全部楼层

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

if name == "小甲鱼":
    print("你好,小甲鱼!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-7 18:03:05 | 显示全部楼层    本楼为最佳答案   
这段代码会报错,因为在第三行尝试将输入的字符串类型的名字转换成整数类型。而在下面的if语句中,判断条件是 `name == "小甲鱼"`,这里"小甲鱼"是字符串类型,与前面的变量类型不一致,所以 if 语句无法执行。

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

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

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

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

求最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-8 15:21:09 | 显示全部楼层
liuhongrun2022 发表于 2023-6-7 17:09
看错了,int 这行删去,变量改个名

好的,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-8 15:21:36 | 显示全部楼层
liuhongrun2022 发表于 2023-6-7 17:14
input 没有错,你不能加 int,那是整数

好的,这点懂了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-8 15:22:30 | 显示全部楼层
isdkz 发表于 2023-6-7 17:37
temp = input() 就是输入一个字符串呀,这个没有什么问题,只不过你的不需要转成整数

所以我就把 name ...

懂了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-8 15:23:51 | 显示全部楼层
tengke 发表于 2023-6-7 18:02
temp = input("请输入您的名字:")
name = temp
print(temp)

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 18:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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