首页 / PYTHON / python中的OR行为:
python中的OR行为:
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python中的OR行为:,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1148字,纯文字阅读大概需要2分钟。
内容图文
![python中的OR行为:](/upload/InfoBanner/zyjiaocheng/712/2605ccebe3e0404d8bccb63505d7c321.jpg)
我写了下面这段代码,我想要做的就是打印一个是,如果传递的数字是一个字符串表示为1,0或2,其他一切都是假的:
number=raw_input()
if number is "1" or "0" or "2":
print "Yes"
else:
print "no"
我知道如何使预期的逻辑工作,但我只是想知道为什么它为任何传递给raw_input的数字打印是.我希望答案尽可能详细,因为我无法理解为什么会失败,对我来说似乎是pythonic
解决方法:
问题是你的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":
这是你想要的.
注意在进行值的比较时,您应该始终使用== not is – is是一个身份检查(两个值是同一个对象).一般来说,你应该使用is来表示True或者是None.
如果你想把它作为一个数字来处理,你可以这样做:
try:
value = int(number)
except ValueError:
value = None
if value is not None and 0 <= value <= 2:
...
在您想要与大量数字进行比较的情况下,这可能更有用.请注意我使用Python的有用比较链(0< = value< = 2而不是0< = value和value< = 2).
内容总结
以上是互联网集市为您收集整理的python中的OR行为:全部内容,希望文章能够帮你解决python中的OR行为:所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。