hckas2 发表于 2020-12-22 11:13:38

int整形问题

这两个int代码为啥输入9.9999,一个可以整形,另一个不可以呢

逃兵 发表于 2020-12-22 11:16:57

input()返回的是字符串类型
按照你的逻辑第一种写法应该是temp=int('9.9999'),这样就报错了
>>> number=int('9.9999')
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
    number=int('9.9999')
ValueError: invalid literal for int() with base 10: '9.9999'

hckas2 发表于 2020-12-22 11:31:40

逃兵 发表于 2020-12-22 11:16
input()返回的是字符串类型
按照你的逻辑第一种写法应该是temp=int('9.9999'),这样就报错了

小甲鱼python第二讲的课后作业,输入0到100的数字,我输入9.9999也是报错
难道只有取整数才没问题
感觉int没起到作业啊{:5_100:}

jackz007 发表于 2020-12-22 11:37:31

本帖最后由 jackz007 于 2020-12-22 11:58 编辑

   int(9.999) 是允许的但是 int("9.999") 却是不允许的,input() 返回的一定是字符串对象,你的问题出在这里。
   你可以用
number = int(eval(input()) + 0.5)
   也可以用
number = int(float(input()) + 0.5)
   来解决此问题

逃兵 发表于 2020-12-22 13:50:06

hckas2 发表于 2020-12-22 11:31
小甲鱼python第二讲的课后作业,输入0到100的数字,我输入9.9999也是报错
难道只有取整数才没问题
感觉 ...

目前根据你学习的进度只能输入整数,后面跟着小甲鱼慢慢学习就知道变量的类型啦,估计下一讲下下一讲就会讲到类型啦。所以这个问题不用太纠结

hckas2 发表于 2020-12-22 22:55:18

逃兵 发表于 2020-12-22 11:16
input()返回的是字符串类型
按照你的逻辑第一种写法应该是temp=int('9.9999'),这样就报错了

非常感谢

hckas2 发表于 2020-12-22 22:55:57

逃兵 发表于 2020-12-22 13:50
目前根据你学习的进度只能输入整数,后面跟着小甲鱼慢慢学习就知道变量的类型啦,估计下一讲下下一讲就会 ...

谢谢大佬
页: [1]
查看完整版本: int整形问题