您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python中的OR行为:

python中的OR行为:

问题在于,对于Python,您的代码如下所示:

if (number is "1") or "0" or "2":

而且,由于任何非空字符串的求值结果True始终为True

做您想做的事情,一个不错的语法是:

if number in {"1", "0", "2"}:

请注意我在这里使用集合-尽管在这种情况下(只有三个值)并没有太大关系,但检查集合的速度比列表快,因为集合的成员资格测试是O(1)而不是O (n)。

这是写得更好,更容易的代码

if number == "1" or number == "0" or number == "2":

这就是你想要的。

请注意,在对值进行比较时,应始终==不使用is-is是身份检查(两个值是同一对象)。通常,您应该使用或之类的is东西。is True``is None

如果您想将其作为数字来处理,则可以执行以下操作:

try:
   value = int(number)
except ValueError:
   value = None
if value is not None and 0 <= value <= 2:
    ...

在要与大量数字进行比较的情况下,这可能会更有用。请注意,我使用Python有用的比较链接0 <= value <= 2而不是0 <= value and value <= 2)。

python 2022/1/1 18:38:39 有251人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶