Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决?

Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决?Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决?Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决?
请问我的代码如何要解决这个问题,谢谢大佬!


回答:

您没有要求过 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__ 这个方法, 有的话就调用它;
  • 没有的话, astr 或者 bytes 吗?
  • 是的话, 看看能不能转换它为整数,能就返回
  • 不能的话就引发 ValueError
  • 以上情况都不是, 那就引发 TypeError

以上是 Python中的ValueError,是否只能识别值不是int或float,而无法区分值是否在[1,100]内,请问如何解决? 的全部内容, 来源链接: utcz.com/p/938134.html

回到顶部