为了账号安全,请及时绑定邮箱和手机立即绑定

python 中的a is not None和 if a:区别

python 中的a is not None和 if a:区别

慕码人8056858 2019-02-17 04:50:36
res=requests.get('https://www.zhipin.com/gongsi/_zzz_c101010100_iy100014_t801_s301/',headers=headers) turn=etree.HTML(res.text).xpath('//div[@class="page"]/a[contains(@ka,"page-next")]/@href') turn [] next_page is not None Traceback (most recent call last): File "<input>", line 1, in <module> NameError: name 'next_page' is not defined turn is not None True turn [] if turn: print('sss') turn is not None True turn is None False 为啥这个是空 写is not None 是对的?这个is not None 什么时候用?
查看完整描述

5 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

因为你写的xpath没有匹配到数据,所以给你返回的是一个空的列表 空列表不是 None 'is not None' 类似 != None
== tests value where is tests to see if they are the same object

查看完整回答
反对 回复 2019-03-01
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

因为 [] 是空列表,确实不是 None 啊。
if 的条件如果是 0, 空字符串 '', 空列表 [],布尔值 FalseNone,都会被判断为 False,条件语句不执行。

查看完整回答
反对 回复 2019-03-01
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

xx is not None = xx != None
if xx = if xx != None and xx != '' and xx != False and xx != 0 and xx != [] and xx !={} and ...

查看完整回答
反对 回复 2019-03-01
?
LEATH

TA贡献1936条经验 获得超6个赞

题主需要了解下falsyFalse的区别, () [] None False 这些都是 Falsy的,但Falsy不只有这些。What is Truthy and Falsy in python? How is it different from True and False?

查看完整回答
反对 回复 2019-03-01
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

None 是一个特殊的对象,而一个对象的布尔值是由__bool____len__ 特殊方法决定的。 None更多的时候作为sentinel对象使用,比如判断循环是否执行。

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 4060 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信