Python解惑之True和False详解

 更新时间:2017年04月24日 09:55:22   作者:FOOFISH  
这篇文章主要给大家介绍了关于Python中常用的数据类型bool(布尔)类型的两个值:True和False的相关资料,通过示例代码给大家进行了解惑,让对这两个值有所疑惑的朋友们能有起到一定的帮助,需要的朋友下面来一起看看吧。

前言

众所周知在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 OpenCV实现视频分帧

    Python OpenCV实现视频分帧

    这篇文章主要为大家详细介绍了Python OpenCV实现视频分帧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • python中如何利用matplotlib画多个并列的柱状图

    python中如何利用matplotlib画多个并列的柱状图

    python是一个很有趣的语言,可以在命令行窗口运行,下面这篇文章主要给大家介绍了关于python中如何利用matplotlib画多个并列的柱状图的相关资料,需要的朋友可以参考下
    2022-01-01
  • Python将主机名转换为IP地址的方法

    Python将主机名转换为IP地址的方法

    今天小编就为大家分享一篇Python将主机名转换为IP地址的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • PyCharm中鼠标悬停在函数上时显示函数和帮助的解决方法

    PyCharm中鼠标悬停在函数上时显示函数和帮助的解决方法

    这篇文章主要介绍了PyCharm中鼠标悬停在函数上时显示函数和帮助,本文给大家分享问题解决方法,对PyCharm鼠标悬停函数上显示函数的解决方法感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • 在Django中使用Sitemap的方法讲解

    在Django中使用Sitemap的方法讲解

    这篇文章主要介绍了在Django中使用Sitemap的方法讲解,Django是最具人气的Python web开发框架,需要的朋友可以参考下
    2015-07-07
  • python判断完全平方数的方法

    python判断完全平方数的方法

    今天小编就为大家分享一篇python判断完全平方数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python实现全盘扫描搜索功能的方法

    python实现全盘扫描搜索功能的方法

    今天小编就为大家分享一篇python实现全盘扫描搜索功能的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 最小二乘法及其python实现详解

    最小二乘法及其python实现详解

    今天小编就为大家分享一篇最小二乘法及其python实现详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 解读Scrapy回调函数callback传递参数的方式

    解读Scrapy回调函数callback传递参数的方式

    这篇文章主要介绍了解读Scrapy回调函数callback传递参数的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • AI人工智能 Python实现人机对话

    AI人工智能 Python实现人机对话

    这篇文章主要为大家详细介绍了AI人工智能应用,本文拟使用Python开发语言实现类似于WIndows平台的“小娜”,,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11

最新评论