| 
									
										
										
										
											2018-10-12 15:37:13 -04:00
										 |  |  | --- | 
					
						
							|  |  |  | title: Python Boolean Operations | 
					
						
							|  |  |  | --- | 
					
						
							| 
									
										
										
										
											2018-10-27 00:31:38 -04:00
										 |  |  | <a href='https://docs.python.org/3/reference/expressions.html#or' target='_blank' rel='nofollow'>`or`</a>, <a href='https://docs.python.org/3/reference/expressions.html#and' target='_blank' rel='nofollow'>`and`</a>, <a href='https://docs.python.org/3/reference/expressions.html#not' target='_blank' rel='nofollow'>`not`</a> | 
					
						
							| 
									
										
										
										
											2018-10-12 15:37:13 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | <a href='https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not' target='_blank' rel='nofollow'>Python Docs - Boolean Operations</a> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | These are the Boolean operations, ordered by ascending priority: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Operation | Result | Notes   | 
					
						
							|  |  |  | --------- | ------------------------------------ | -----   | 
					
						
							|  |  |  | x or y | if x is false, then y, else x | (1)   | 
					
						
							|  |  |  | x and y | if x is false, then x, else y | (2)   | 
					
						
							|  |  |  | not x | if x is false, then True, else False | (3) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | **Notes:** | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 1.  This is a short-circuit operator, so it only evaluates the second argument if the first one is False. | 
					
						
							|  |  |  | 2.  This is a short-circuit operator, so it only evaluates the second argument if the first one is True. | 
					
						
							|  |  |  | 3.  not has a lower priority than non-Boolean operators, so not a == b is interpreted as not (a == b), and a == not b is a syntax error. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Examples:
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-27 00:31:38 -04:00
										 |  |  | ### `or`:
 | 
					
						
							| 
									
										
										
										
											2018-10-12 15:37:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-27 00:31:38 -04:00
										 |  |  |     >>> True or False    # Short-circuited at first argument. | 
					
						
							|  |  |  |     True | 
					
						
							|  |  |  |     >>> False or True    # Second argument is evaluated. | 
					
						
							| 
									
										
										
										
											2018-10-12 15:37:13 -04:00
										 |  |  |     True | 
					
						
							| 
									
										
										
										
											2018-10-27 00:31:38 -04:00
										 |  |  |     >>> False or False   # Second argument is evaluated. | 
					
						
							|  |  |  |     False | 
					
						
							| 
									
										
										
										
											2018-10-12 15:37:13 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ### `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 | 
					
						
							| 
									
										
										
										
											2018-10-27 00:31:38 -04:00
										 |  |  |      | 
					
						
							|  |  |  | ### `not`:
 | 
					
						
							| 
									
										
										
										
											2018-10-12 15:37:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-27 00:31:38 -04:00
										 |  |  |     >>> not True | 
					
						
							|  |  |  |     False | 
					
						
							|  |  |  |     >>> not False | 
					
						
							| 
									
										
										
										
											2018-10-12 15:37:13 -04:00
										 |  |  |     True |