Python中使用Boolean操作符做真值测试实例 在Python中,任何类型的对象都可以做真值测试,并且保证返回True或者False。 以下几种值(不论类型)在真值测试中返回False: 1.None 2.False 3.任何类型的数字0,包括0,0.0,0L,0j 4.空的序列(sequence)或者映射(mapping)类型对象 5.对于用户自定义类型的对象,如果其类定义了__nonzero__() 或者 __len__()特殊方法并且返回False或者0 对于最后一条规则,有几点需要说明: 1.如果类没有定义这两个方法中的任何一个,则这种类型的对象真值测试时总是为True 2.如果类同时定义了__nonzero__() 和 __len__(),只会参考__nonzero__()的返回值 Boolean操作符的特性(直接copy文档而来): 复制代码 代码如下: x or y: if x is false, then y, else x x and y: if x is false, then x, else y not x: if x is false, then True, else False 1.注意and和or操作符的短路特性 2.not运算符要么返回True要么返回False 3.and和or运算符的返回值不限于True和False,它只是对x或者y做真值测试,然后返回其中一个的值(注意不是其真值) 代码示例: 复制代码 代码如下: s = '' s = s or 'default value' print s 运行结果是: 复制代码 代码如下: default value