Python解惑之True和False详解
作者:FOOFISH 发布时间:2022-06-02 20:28:03
标签:python,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
来源:https://foofish.net/python-true-false.html
0
投稿
猜你喜欢
- 关于CSS中的命名规则(其实我觉得是XHTML元素的命名规则更加合理些)这个问题,已经有很多人在说了,其中也不乏一些真知灼见。不过这种东西也
- 运行环境:IIS脚本语言:VBScript数据库:Access/SQL Server数据库语言:SQL1.概要:不论是在论坛,还是新闻系统,
- 最近接触到一个心理学方面的理论:心流理论。大意是一种个人精力完全投注在某件事情上的感觉。心流产生时会有高度的兴奋和充实感。其实也就是说人在进
- Python import .pyd文件时会搜索sys.path列表中的路径运行import xxx.pyd1. 'ImportEr
- 一:目录操作 首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而
- 1.官网语法pandas.read_csv(filepath_or_buffer, sep=NoDefault.no_default**,*
- 这篇文章主要介绍了Python爬取豆瓣视频信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- turtle库是python的基础绘图库,官方手册这个库被介绍为一个最常用的用来给孩子们介绍编程知识的方法库,其主要是用于程序设计入门,是标
- 选择自 xinyuxin912 的 Blog将一个图片以二进制值的形式存入Xml文件中try { &nbs
- 如何远程注册DLL?试试下面的代码:<% Response.Buffer = True %&g
- SQL Server有几个版本都在使用中——4.2, 6.0, 6.5, 7.0, 2000,以及2
- 本文实例讲述了php中Array2xml类实现数组转化成XML的方法。分享给大家供大家参考。具体实现方法如下:<?phpclass A
- UDPUDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。 UDP传输数据时有大
- 文件内容:excel内容:代码:import xlrdimport jsonimport operatordef read_xlsx(fil
- 导言:本文一步一步手把手教你打造一个极酷的三层分离的标准滑动门导航菜单,从思路、原理、步骤,手段可谓“无所不用其极”,即便你是菜鸟,相信你看
- Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。1.PHP加密扩展库Mcrypt安装在标准的PHP安装过程中并没
- 问题概述:有时候在使用print函数输出时,往往需要不断地切换字符串和变量,操作起来很不方便,需要不断地打引号和逗号。比如:firstNam
- Request.ServerVariables("Url") 返回服务器地址Request.ServerVariable
- 让你的读者能够方便地收藏你的文章到社会化书签(网摘)网站,如 新浪,google,yahoo,Del.icio.us, 365key等添加到
- python中判断文件结束符的方法:可以使用try except语句块来进行判断。具体使用方法:【try:while True:s = in