nini817 发表于 2022-6-14 18:14:38

为什么输入非整数会报错

小甲鱼的课后作业

编写程序:要求用户输入1到100之间数字并判断,输入符合要求打印“你妹好漂亮”,不符合要求则打印“你大爷好丑”

temp=input('please enter nunber from 1 to 100:')
num=int(temp)

if 1<=num<=100:
    print('你妹好漂亮^_^')
else:
    print('你大爷好丑')


问题来了,我输入非整数,例如88.5的时候就会报错
num = int(temp) 把字符串转成整数,然后赋值给变量num
那我输入88.5 无法转成整数吗?这个代码该如何改呢?
有点晕 int()函数 {:10_269:}

临时号 发表于 2022-6-14 18:17:27

本帖最后由 临时号 于 2022-6-14 18:26 编辑

int()函数的参数只能是浮点数或整数形式的字符串
88.5是浮点数形式的字符串,int()函数转换不了
解决:将字符串转成浮点数
temp=input('please enter nunber from 1 to 100:')
num=float(temp)

if 1<=num<=100:
    print('你妹好漂亮^_^')
else:
    print('你大爷好丑')

森亦简 发表于 2022-6-14 18:18:35

用浮点数 float()
temp=input('please enter nunber from 1 to 100:')
num=float(temp)

if 1<=num<=100:
    print('你妹好漂亮^_^')
else:
    print('你大爷好丑')


please enter nunber from 1 to 100:88.5
你妹好漂亮^_^
>>>

jackz007 发表于 2022-6-14 18:21:21

本帖最后由 jackz007 于 2022-6-14 18:22 编辑

   int(v) 的参数 v 只能是浮点数或整数形式的字符串,通过 input() 函数得到的是字符串,通过键盘输入的浮点数实际上是字符串形式的浮点数,不符合 int() 函数对输入参数的要求,所以会出错。

nini817 发表于 2022-6-14 18:44:17

本帖最后由 nini817 于 2022-6-14 18:46 编辑

谢谢各位大佬们

nini817 发表于 2022-6-14 18:45:42

jackz007 发表于 2022-6-14 18:21
int(v) 的参数 v 只能是浮点数或整数形式的字符串,通过 input() 函数得到的是字符串,通过键盘输入的 ...

谢谢大佬,也回答得很详细{:5_110:}
页: [1]
查看完整版本: 为什么输入非整数会报错