python開発_pythonのBoolean演算と真偽値

10434 ワード

pythonの真偽値:
Truth Value Testing
Any object can be tested for truth value, for use in an if or while condition or as operand of the Boolean operations below. The following values are considered false:

1.None

2.False

3.zero of any numeric type, for example, 0, 0.0, 0j.

4.any empty sequence, for example, '', (), [].

5.any empty mapping, for example, {}.

6.instances of user-defined classes, if the class defines a __bool__() or __len__() method, when that method returns the integer zero or bool value False. [1]

All other values are considered true — so objects of many types are always true.

Operations and built-in functions that have a Boolean result always return 0 or False for false and 1 or True for true, unless otherwise stated. (Important exception: the Boolean operations or and and always return one of their operands.)

まとめ:
# python ,             :True,False
# if while     ,       False:
#
# 1.None
# 2.Flase
# 3.   0   , :0,0.0,0j
# 4.     , :'',(),[]
# 5.   mapping, :{}
# 6.instances of user-defined classes, if the class defines a __bool__() or __len__() method,
#    when that method returns the integer zero or bool value False.
#
# All other values are considered true — so objects of many types are always true.
#
#
#             Boolean  0  Flase  false
#1 True  true
#

pythonのBoolean演算は次のとおりです.
Boolean Operations
 1 print('x or y -> if x is false,then y, else x ')
 2 x, y = 2, 0
 3 print('{} or {} = {}'.format(x, y, x or y))
 4 x1, y1 = 0, 10
 5 print('{} or {} = {}'.format(x1, y1, x1 or y1))
 6 x2, y2 = 0, 0
 7 print('{} or {} = {}'.format(x2, y2, x2 or y2))
 8 
 9 print('#' * 50)
10 print('x and y -> if x is false,then x, else y ')
11 print('{} and {} = {}'.format(x, y, x and y))
12 x1, y1 = 0, 10
13 print('{} and {} = {}'.format(x1, y1, x1 and y1))
14 x2, y2 = 0, 0
15 print('{} and {} = {}'.format(x2, y2, x2 and y2))
16 
17 print('#' * 50)
18 print('not x -> if x is false,then True,else False ')
19 x = 2
20 print('not {} = {}'.format(x, not x))
21 x = 0
22 print('not {} = {}'.format(x, not x))

 
実行効果:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
x or y -> if x is false,then y, else x 
2 or 0 = 2
0 or 10 = 10
0 or 0 = 0
##################################################
x and y -> if x is false,then x, else y 
2 and 0 = 0
0 and 10 = 0
0 and 0 = 0
##################################################
not x -> if x is false,then True,else False 
not 2 = False
not 0 = True
>>> 

 
転載先:https://www.cnblogs.com/hongten/p/hongten_python_boolean.html