调试运行我的代码不管怎么说,当我发现基本上减去声明boolean的float.
然后我尝试在python控制台中关注:
>>> 15.0 - True
14.0
>>> 15.0 - False
15.0
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释:
and,not并且or在布尔值上:http://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not)这是合法的,因为它是以下bool的子类int:
>>> bool.__bases__
(<type 'int'>,)
>>> True == 1
True
>>> False == 0
True
Run Code Online (Sandbox Code Playgroud)
是的,它有一些实际应用.例如,在引入三元语句之前可以执行类似的操作:
result = [value_if_false, value_if_true][condition]
Run Code Online (Sandbox Code Playgroud)
这基本上可以在这段代码中完成:
if condition:
result = value_if_false
else:
result = value_if_true
Run Code Online (Sandbox Code Playgroud)
其他实际用途是:
sum多个支票/布尔值来获得相同数量的结果True,你可以乘以检查的结果:
result = can_count_a * a + can_count_b * b
Run Code Online (Sandbox Code Playgroud)http://docs.python.org/3/library/stdtypes.html#boolean-values
布尔值是两个常量对象 False 和 True。它们用于表示真值(尽管其他值也可以被视为假或真)。
在数字上下文中(例如,当用作算术运算符的参数时),它们的行为分别类似于整数 0 和 1。
现在不是这样,但你可以写
result = numeric_value * a_bool (这个被大量使用,例如在着色器语言中)
代替
result = numeric_value if a_bool else 0
或者
result = (value_if_false, value_if_true)[a_bool]
但不要这样做。
这主要是具有较低级语言经验的人所期望的,为什么要从他们身上夺走这一点呢?在 C 中,true 和 false 仍然是 1 和 0 的宏。
在 2.3 之前,Python 中也没有bool类型,因此当引入它时,将其作为 的子类,int以确保没有代码被破坏。
| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |