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

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 什么时候用?

慕码人8056858
浏览 4061回答 5
5回答

慕村9548890

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

qq_笑_17

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

眼眸繁星

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

LEATH

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

鸿蒙传说

None 是一个特殊的对象,而一个对象的布尔值是由__bool__和__len__ 特殊方法决定的。 None更多的时候作为sentinel对象使用,比如判断循环是否执行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python