20 lines
		
	
	
		
			989 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			989 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Python Truth Value Testing
 | ||
| localeTitle: Python真值测试
 | ||
| ---
 | ||
| [Python Docs - 真值测试](https://docs.python.org/3/library/stdtypes.html#truth-value-testing)
 | ||
| 
 | ||
| 可以测试任何对象的真值,用于`if`或`while`条件或布尔运算的操作数,如`and` , `or` ,或`not` 。
 | ||
| 
 | ||
| 以下值被视为false:
 | ||
| 
 | ||
| *   `None`
 | ||
| *   `False`
 | ||
| *   任何数值类型的零,例如, `0` , `0.0` , `0j` , `Decimal(0)` `Fraction(0, 1)`
 | ||
| *   任何空序列,例如`''` , `()` , `[]` , `set()` , `range(0)` 。
 | ||
| *   任何空映射,例如`{}` 。
 | ||
| *   用户定义的类的实例,如果该类定义`__bool__()`或`__len__()`方法,则该方法返回`False`或`0` 。
 | ||
| 
 | ||
| 所有其他值都被认为是真的 - 所以许多类型的对象总是正确的。
 | ||
| 
 | ||
| 除非另有说明,具有布尔结果的操作和内置函数总是返回`0`或`False`表示false, `1`或`True`表示true。 (重要的例外:布尔运算`or` `and`始终返回其中一个操作数。) |