Python解惑之True和False详解
2017-04-24 09:55
716 查看
前言
众所周知在Python 中常用的数据类型bool(布尔)类型的实例对象(值)就两个,真和假,分别用True和False表示。在if 条件判断和while 语句中经常用到,不过在Python2.x 中,True 和False 却有着奇怪的用法,就是真假可以相互被替换
先看下面代码:
>>> 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才执行代码块中的语句。究竟是什么原因呢?
解惑
在Python2.7 中,True和False是两个内建(built-in)变量,内建变量和普通自定义的变量如a, b, c一样可以被重新赋值,因此我们可以把这两个变量进行任意的赋值,比如:
True = 2 False = "abc"
甚至是True和False进行互换
tmp = True True = False False = tmp
互换后变量True指向了假对象,False指向了真对象:
因此,在Python 中我们不要随意给True 和False 赋新的值,否则程序代码逻辑都会乱套了。这也算是Python2.x 中一个坑,不过在Python3.x 中,终于把这个两变量变成了关键字,也就是说,程序员再也没法给这两变量赋新的值了,从此True永远指向真对象,False指向假对象,永不分离。用keyword模块检测True 和False 是否为关键字。
>>> import keyword >>> keyword.iskeyword('True') False
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
相关文章推荐
- ☆Python - 解惑 True 和 False 详解
- 【python】YY一下python里的 True 和 False
- 【Python】Python中的True, False条件判断
- Python 单元测试:assertTrue 是真值_assertFalse 是假值
- python判断是否可以只插一个字符,让字符串变成回文,返回true/false
- Python小技巧 – True or False
- Python解惑之整数比较详解
- angularjs指令中scope参数 true、false、{} 的区别详解
- Python基础学习:关键字True、False
- python true false
- python 中的True和1及False和0是可以等价比较及是否是bool类型
- Python小技巧 – True or False
- python中 subprocess shell=False 与shell=True的区别
- Python 单元测试:assertTrue 和assertFalse 的真假
- python 类型true,false判断
- Python返回真假值(True or False)小技巧
- Python 单元测试:assertTrue 是真值,assertFalse 是假值
- python3 中print函数参数详解,print(*values, sep=' ', end='\n', file=sys.stdout, flush=False)中参数介绍
- Python3基础 dict 推导式 生成10以内+奇数的值为True 偶数为False的字典
- Python的逻辑控制true/false和循环