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
qq_笑_17
TA贡献1818条经验 获得超7个赞
因为 []
是空列表,确实不是 None
啊。if
的条件如果是 0
, 空字符串 ''
, 空列表 []
,布尔值 False
,None
,都会被判断为 False
,条件语句不执行。
眼眸繁星
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 ...
LEATH
TA贡献1936条经验 获得超6个赞
题主需要了解下falsy
和False
的区别, ()
[]
None
False
这些都是 Falsy
的,但Falsy
不只有这些。What is Truthy and Falsy in python? How is it different from True and False?
鸿蒙传说
TA贡献1865条经验 获得超7个赞
None
是一个特殊的对象,而一个对象的布尔值是由__bool__
和__len__
特殊方法决定的。 None
更多的时候作为sentinel对象使用,比如判断循环是否执行。
添加回答
举报
0/150
提交
取消