你咋python做判断的时候 经常看到这几种情况


if True:

if s:

if key is not None:

if not s:



等这样的判断


理解

1 空是一个数据类型的无 如

s=''

l=[]

d = {}

t = ()

以上都是表示无元素


In [33]: s=''
In [34]: if s:
   ....:     print 's字符串不为空'
   ....: else:
   ....:     print 's字符串为空'
   ....:     
s字符串为空


常用,判断一个字符串是否有'出空格或\n之外的元素'常用如下判断

if s.strip():
    pass
else:
    pass



2 None 类型

None是一个NoneType类型 ,注意是类型

In [48]: a = None
In [49]: type(a)
Out[49]: NoneType
In [50]: type(None)
Out[50]: NoneType


In [44]: if a is not None:
   ....:     print 'a not None'
   ....: else:
   ....:     print 'None'
   ....:     
None


常用判断一个元素是否为None类型

if a is not None:
    pass
else:
    pass

None常出现在函数的默认参数赋值中def f(s=None) 和 返回值return None中




3 布尔类型  True False

In [45]: if True:
   ....:     print '真'
   ....: else:
   ....:     print '假'
   ....:     
真


常用: 函数的return True 或者  if 判断中


if True 等于  if not False

In [47]: not False
Out[47]: True



4 not 为取反

注意取反不能使用 !


if not s: