Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决?
![Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决?](/wp-content/uploads/new2024/02/20240206vue12345/4222448634-617246dcc81cb_fix732740.jpg)
![Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决?](/wp-content/uploads/new2024/02/20240206vue12345/4162042147-617246eb9983d_fix732741.jpg)
![Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决?](/wp-content/uploads/new2024/02/20240206vue12345/3084205341-61724703caa96_fix732742.jpg)
请问我的代码如何要解决这个问题,谢谢大佬!
回答:
您没有要求过 python 检查数是不是在您想要的范围, python 当然不会检查了.
你所写的那行 0 <= number < 100 其实并不会引起错误, 只是这个表达式在不被满足的时候是 False 而已.
你需要写一个类似这样的东西:
if not (0 <= number < 100): raise ValueError
TypeError 其实是不会被引发的, 因为 input 的返回值肯定是一个 str, 而 int 是可以接受 str 的, 只是有些 str 它转换不了, 比如 int("1.2"), int("range(12)") 都会引发 ValueError.
只有当 int 的参数类型它根本不会处理的时候, 才会有 TypeError, 比如 int(range(10)).
int(a) 会干这样的事:
- 首先看
a有没有__int__这个方法, 有的话就调用它; - 没有的话,
a是str或者bytes吗? 是的话, 看看能不能转换它为整数,能就返回
不能的话就引发
ValueError- 以上情况都不是, 那就引发
TypeError
以上是 Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决? 的全部内容, 来源链接: utcz.com/p/938134.html

