华仔是研究生 发表于 2022-6-1 15:59:22

运行后显示不正确

在运行后输入滑雪显示:ValueError: invalid literal for int() with base 10: '滑雪'这是什么情况,有大佬讲解吗

print('------huazai-----')
temp = input("华仔喜欢什么:")
guess = int(temp)
if guess == 滑雪:
    printf("你猜对了!")
    printf("没有奖励!")
else:
    printf("猜错啦")
printf("结束")

isdkz 发表于 2022-6-1 16:05:06

本帖最后由 isdkz 于 2022-6-1 16:08 编辑

int 可以用于将一个整数字符串转成整数,

滑雪又不是整数字符串,当然会报错了
print('------huazai-----')
guess = input("华仔喜欢什么:")
if guess == '滑雪':
    print("你猜对了!")
    print("没有奖励!")
else:
    print("猜错啦")
print("结束")

森亦简 发表于 2022-6-1 16:05:16

1、滑雪没有加引号
2、滑雪是字符串不用转换成int(),应该用str()
3、python里print没有f

print('------huazai-----')
temp = input("华仔喜欢什么:")
guess = str(temp)
if guess == "滑雪":
    print("你猜对了!")
    print("没有奖励!")
else:
    print("猜错啦")
print("结束")

Twilight6 发表于 2022-6-1 16:16:22



Python 的打印函数是 print 不是 printf

int 函数是将字符串转化为整型,而 "滑雪" 这个字符串不能直接转为整数而报错

因为 input 函数接收用户输入,返回的也是字符串,所以不用通过 guess 进行中转,直接用于判断即可

滑雪需要加上引号,才表示 "滑雪" 是字符串,否则 Python 会认为是 滑雪 这个变量,而你前面没用对 滑雪这个变量进行赋值,也会导致报错

参考代码:

print('------huazai-----')
temp = input("华仔喜欢什么:")

if temp == "滑雪":
    print("你猜对了!")
    print("没有奖励!")
else:
    print("猜错啦")
   
print("结束")

华仔是研究生 发表于 2022-6-1 16:16:46

森亦简 发表于 2022-6-1 16:05
1、滑雪没有加引号
2、滑雪是字符串不用转换成int(),应该用str()
3、python里print没有f

得用单引号才能正常运行。谢谢了哈

Twilight6 发表于 2022-6-1 16:18:03

华仔是研究生 发表于 2022-6-1 16:16
得用单引号才能正常运行。谢谢了哈



Python 语法中单双引号表示的含义相同

页: [1]
查看完整版本: 运行后显示不正确