int问题 请大神帮看,这里的int是不是没起作用啊,为什么呢?感谢
本帖最后由 hayomodo 于 2019-5-2 19:09 编辑代码是这样(论坛等级不够好像无法传图,只能复制代码了)
A=input("你的丁丁有多长:")
B=int(A)
if 0<=B<=13:
print("垃圾")
elif 14<=B<=17:
print("还可以")
elif 18<=B<=23:
print("牛逼!")
else:
print("你是牲口吗")
输出结果如下(输16的时候正常,输16.8就不对了)
================== RESTART: D:/学习什么的/python/练习文件/4.30练习2.py ==================
你的丁丁有多长:16
还可以
>>>
================== RESTART: D:/学习什么的/python/练习文件/4.30练习2.py ==================
你的丁丁有多长:16.8
Traceback (most recent call last):
File "D:/学习什么的/python/练习文件/4.30练习2.py", line 2, in <module>
B=int(A)
ValueError: invalid literal for int() with base 10: '16.8'
>>>
请问各位大神 这是为什么呢
--------------------------------------------------------------------------------------------------分割-----------------------------------------------------------------------------------------------------------------------------------------
换成float确实可以了,这个时候也意识到如果输入13和14之间的小数,弹出的结果就是"你是牲口吗",是个bug
重新改一下代码
A=input("你的丁丁有多长:")
B=float(A)
if 0<=B<14:
print("垃圾")
elif 14<=B<18:
print("还可以")
elif 18<=B<=23:
print("牛逼!")
else:
print("你是牲口吗")
这样应该可以了 本帖最后由 jackz007 于 2019-5-2 18:02 编辑
输入浮点数这一句不灵,B = int(A),应该这么改,B = float(A)
楼主是新疆人?
int是整形,16.8是小数,浮点型
a = 16.8
b = int(a)
这样就没有问题,是为啥? wwhywhy 发表于 2019-5-2 18:10
a = 16.8
b = int(a)
这样就没有问题,是为啥?
我也是这个疑问,b的赋值是int(a),那么输入16.8后b不就应该是16了吗?对于16这个值做一个区间判断为什么不行呢? jackz007 发表于 2019-5-2 18:00
输入浮点数这一句不灵,B = int(A),应该这么改,B = float(A)
楼主是新疆人?
感谢,换float确实可以,但是既然b=int(a) 那么a=16.8的时候,b就是16,这个16为什么不能被后面的代码进行运算呢?
我不是新疆人啊哈哈哈哈哈 为什么这么问呢? hayomodo 发表于 2019-5-2 19:04
感谢,换float确实可以,但是既然b=int(a) 那么a=16.8的时候,b就是16,这个16为什么不能被后面的代码进 ...
如果一定要 int ,那就这么用 B = int(float(A)),当 A 是浮点数的时候, int(A) 是可以的,但是,当 A 是字符串的时候,却只能接受整型数形式的,浮点数形式的不灵。 本帖最后由 wwhywhy 于 2019-5-2 20:57 编辑
变量A的类型是str:
type(A)
<class 'str'>
所以需要将A先转成float(),然后才能执行int()
所以在我们不知道输入的是整数还是浮点数的时候,需要先转换成float(), 然后调用int(),这样就保险了! 数的类型不同啊,一个整数一个浮点数
页:
[1]