博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python解惑之:True与False
阅读量:2157 次
发布时间:2019-05-01

本文共 910 字,大约阅读时间需要 3 分钟。

题图:Patrick Fore

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 = True

互换后变量 True指向了 对象, False指向了 对象: 

0?wx_fmt=pngTrue永远指向 对象, False指向 对象,永不分离。用 keyword模块检测True 和False 是否为关键字。

>>> import keyword	>>> keyword.iskeyword('True')	False

转载地址:http://ukqwb.baihongyu.com/

你可能感兴趣的文章
行为型模式之状态模式(State)
查看>>
行为型模式之策略模式(Strategy)
查看>>
行为型模式之模板方法模式(TemplateMethod)
查看>>
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>
Git安装配置
查看>>
linux中fork()函数详解
查看>>
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>