Python 中经常使用的数据类型bool
(布尔)类型的实例对象(值)就两个,真和假,分别用True
和False
表示。在if 条件判断和while 语句中常常用到,不过在Python2.x 中,True 和False 却有着奇怪的用法,就是真假能够相互被替换,先看下面代码: python
>>> True
True
>>> False
False
>>> if True:
... print True
...
True
>>> if not False:
... print False
...
False复制代码
这段代码逻辑理解起来没任何问题,if 判断中只要表达式的值返回 True
,就执行if 代码块中的语句。再来看下一段代码:程序员
>>> True, False = False, True
>>> True
False
>>> False
True
>>> if not True:
... print False
...
True
>>> if False:
... print True
...
False
>>>复制代码
我把True 和False 互换了一下,就是传说中的颠却是非黑白。真变成了假,假变成了真。因而在条件判断中,表达式的值返回False
才执行代码块中的语句。到底是什么缘由呢?ui
在Python2.7 中,True
和False
是两个内建(built-in)变量,内建变量和普通自定义的变量如a, b, c同样能够被从新赋值,所以咱们能够把这两个变量进行任意的赋值,好比: spa
True = 2
False = "abc"复制代码
甚至是True和False进行互换.net
tmp = True
True = False
False = tmp复制代码
互换后变量True
指向了假
对象,False
指向了真
对象:
3d
所以,在Python 中咱们不要随意给True 和False 赋新的值,不然程序代码逻辑都会乱套了。这也算是Python2.x 中一个坑,不过在Python3.x 中,终于把这个两变量变成了关键字,也就是说,程序员再也无法给这两变量赋新的值了,今后True
永远指向真
对象,False
指向假
对象,永不分离。用keyword
模块检测True 和False 是否为关键字。code
>>> import keyword
>>> keyword.iskeyword('True')
False复制代码
个人博客:foofish.netcdn
扫一扫关注公众号获取最新文章:
对象