1、布尔值(Booleans)
在编程中,通常需要知道表达式是True
还是False
。
可以执行Python中的任何表达式,并获得两个值之一,True
或False
。
比较两个值时,将对表达式求值,Python返回布尔值:
例如:
print(11 > 9)print(12 == 9)print(13 < 9)
在if语句中运行条件时,Python返回True
或False
:
例如:
根据条件是True
还是False
打印一条消息:
a = 200b = 33if b > a: print("b 大于 a")
else: print("b 不大于 a")
2、布尔值类型的转换和变量(bool())
bool()
函数可以将其它类型转换为布尔值类型True
或False
,
例如:
使用bool()对字符串和数字转换布尔值:
print(bool("Hello"))print(bool(15))
例如:
使用bool()对两个变量转换布尔值:
x = "Hello"y = 15print(bool(x))print(bool(y))
3、大多数的值都是True
如果它具有某种内容,则几乎所有值都将转换为True
。
除空字符串(''
或“”)
外,任何字符串均为True
。
除0
外,任何数字均为True
。
任何非空的列表,元组,集合和字典都是True
。
例如:
以下内容将返回True:
bool("abc")bool(123)bool(["apple", "cherry", "banana"])
4、某些值是False
实际上,除了空值(例如()
,[]
,{}
,“”
,数字0
和值None
。 当然,值False
也可转换为False
。
例如:
以下将返回False:
bool(False)bool(None)bool(0)bool("")bool(())bool([])bool({})
另外一个值或对象(在这种情况下)的计算结果为False
,也就是说,如果您有一个对象,该对象是由具有__len__
函数的类制成的,该函数返回0
或False
:
例如:
class myclass():def __len__(self): return 0myobj = myclass()print(bool(myobj))
5、函数方法可以返回一个布尔值
可以创建返回布尔值的函数:
例如:
打印输出函数结果:
def myFunction() : return Trueprint(myFunction())
可以根据函数返回值布尔值判断执行代码:
例如:
打印输出“YES!” 如果函数返回True,否则打印“NO!”:
def myFunction() : return Trueif myFunction(): print("YES!")else: print("NO!")
Python还具有许多内置的返回布尔值的函数,例如,isinstance()
函数,可用于确定对象是否属于某种数据类型:
例如:
判断对象是否为int:
x = 200print(isinstance(x, int))
6、使用示例代码
print(bool())print(bool(False))print(bool(0),bool(0.0),bool(0j))print(bool(""),bool(()),bool([]),bool({}))class alfalse(): def __bool__(self): # 定义了 __bool__() 方法,始终返回False return Falsef = alfalse()print(bool(f))class alzero(): def __len__(self): # 定义了 __len__() 方法,始终返回0 return 0zero = alzero()print(bool(zero))class justaclass(): passc = justaclass()print(bool(c)) # 一般class instance都返回为True