52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Python Boolean Operations | |||
|  | localeTitle: Python布尔运算 | |||
|  | --- | |||
|  | [`and`](https://docs.python.org/3/reference/expressions.html#and) , [`or`](https://docs.python.org/3/reference/expressions.html#or) , [`not`](https://docs.python.org/3/reference/expressions.html#not) | |||
|  | 
 | |||
|  | [Python Docs - 布尔运算](https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not) | |||
|  | 
 | |||
|  | 这些是布尔运算,按升序排序: | |||
|  | 
 | |||
|  | 操作|结果|笔记   | |||
|  | \--------- | ------------------------------------ | -----   | |||
|  | x或y |如果x为假,则为y,否则为x | (1)   | |||
|  | x和y |如果x为假,则为x,否则为y | (2)   | |||
|  | 不是x |如果x为假,则为True,否则为False | (3) | |||
|  | 
 | |||
|  | **笔记:** | |||
|  | 
 | |||
|  | 1.  这是一个短路运算符,因此只有在第一个参数为False时才会计算第二个参数。 | |||
|  | 2.  这是一个短路操作符,因此只有在第一个参数为True时才会计算第二个参数。 | |||
|  | 3.  没有比非布尔运算符更低的优先级,因此不是a == b被解释为不是(a == b),而a ==不是b是语法错误。 | |||
|  | 
 | |||
|  | ## 例子:
 | |||
|  | 
 | |||
|  | ### `not` :
 | |||
|  | ``` | |||
|  | >>> not True  | |||
|  |  False  | |||
|  |  >>> not False  | |||
|  |  True  | |||
|  | ``` | |||
|  | 
 | |||
|  | ### `and` :
 | |||
|  | ``` | |||
|  | >>> True and False    # Short-circuited at first argument.  | |||
|  |  False  | |||
|  |  >>> False and True    # Second argument is evaluated.  | |||
|  |  False  | |||
|  |  >>> True and True     # Second argument is evaluated.  | |||
|  |  True  | |||
|  | ``` | |||
|  | 
 | |||
|  | ### `or` :
 | |||
|  | ``` | |||
|  | >>> True or False    # Short-circuited at first argument.  | |||
|  |  True  | |||
|  |  >>> False or True    # Second argument is evaluated.  | |||
|  |  True  | |||
|  |  >>> False or False   # Second argument is evaluated.  | |||
|  |  False  | |||
|  | 
 | |||
|  | ``` |