程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-05(3)

Python代码中or的一个坑

发布于2019-08-20 11:55     阅读(1911)     评论(0)     点赞(29)     收藏(1)


在写代码的时候,我们通常会用if 进行判断,判断某个字符串里是否某个字符,比如:

if 'a' in 'abc':
	pass
	#  返回True
  • 1
  • 2
  • 3

时间长了,我们可能会需要进行or的组合判断,如以下代码:

if  'a' or 'b' in 'def':
	pass
# 这里居然返回的也是True!!!
  • 1
  • 2
  • 3

这时问题就出现了,上述条件返回的是True!
在这里插入图片描述

这不是我们想到的结果啊!!!
大概率你想判断的是 a 或者是b 是否在字符串 def中。正确的写法应该是:

if  'a' in 'def' or 'b' in 'def':
	pass
	# 这下返回False,终于对了
  • 1
  • 2
  • 3

这样返回的才是False

如果按照第一种写法,Python会理解为(‘a’) or (‘b’ in ‘def’),因为’a’是True,所以整个表达式的值就是True,如图所示:
在这里插入图片描述
所以,就算再简洁的语法,不该省略的地方还是不要省略,切记!!!



所属网站分类: 技术文章 > 博客

作者:hghgh

链接:https://www.pythonheidong.com/blog/article/49179/11b3a48bfe137176fcca/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

29 0
收藏该文
已收藏

评论内容:(最多支持255个字符)