首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >是真是假?

是真是假?

作者头像
Crossin先生
发布2023-09-12 18:53:57
发布2023-09-12 18:53:57
21200
代码可运行
举报
运行总次数:0
代码可运行

大家好,欢迎来到 Crossin的编程教室 !

上次最后的示例中,有这样一个写法:

代码语言:javascript
代码运行次数:0
运行
复制
if x:
    print('x 非空')

这种写法会起到什么效果呢?

要理解这个,我们要先理解 bool 类型。

bool 类型是一种表示逻辑状态的类型,这个类型只有2个值,True 和 False,对应逻辑上的「真」和「假」。

逻辑在编程中非常重要。大量的复杂程序本质上都是建立在「真」与「假」的基本逻辑之上。而 bool 所表示的就是这种最单纯最本质的 True/False,真与假,是与非。

最常见的布尔值是通过「比较运算符」得到的,例如:

代码语言:javascript
代码运行次数:0
运行
复制
8 > 7
-2 <= -3
1 + 1 == 2
'ab' != 'cd'

这些式子看起来像是数学上的不等式,但仔细看会有区别,因为这些式子在数学上未必成立。比如其中的 -2 <= -3,数学上是错误的。但在编程中,「错误」也是一种结果,这个结果就是 False。另外3个正确的表达式,结果都是 True。

常用的比较运算符包括:

>

大于

<

小于

>=

大于等于

<=

小于等于

==

等于(比较两个值是否相等。两个等号,不同于变量赋值)

!=

不等于

比较运算符的结果是 bool 类型的值。

还有一种逻辑运算符:

not

逻辑“非”

如果 x 为 True,则 not x 为 False

and

逻辑“与”

如果 x 为 True,且 y 为 True,则 x and y 为 True

or

逻辑“或”

如果 x、y 中至少有一个为 True,则 x or y 为 True

逻辑运算符通常用于 bool 类型值之间的运算,这个我们下次再细说。

比较运算符的两边都可以加上变量和计算式,代码执行时会将变量值代入计算出bool结果。例如:

代码语言:javascript
代码运行次数:0
运行
复制
time = 2.5
hobbies = '🎤💃🤘🏀'
print(time >= 2.5)
print('🎤' + '💃' + '🤘' + '🏀' == hobbies)

输出

代码语言:javascript
代码运行次数:0
运行
复制
True
True

回到一开始的问题,对于 if 语句来说,就是根据后面条件的 bool 结果,来决定要不要执行它内部的代码块:

True 就执行,False 就跳过

而不管 if 后面的条件是什么类型,程序都会把它当做一个 bool 值来判断,相当于自动替你做了一次 bool 类型转换。转换基于这样一个原则:

如果是空值或者0值,结果就是False;否则就是True

具体来说包括:

  • 为0的数字,包括0,0.0
  • 空字符串,包括'',""
  • 表示空值的 None
  • 空集合,包括(),[],{}
  • 其他的值都认为是True

所以如果 x 是用户的输入,这个输入不是空字符串,转成 bool 值是 True,if 的条件成立,内部代码被执行。

最后来几个例子复习一下,想想结果是什么,再到编辑器里验证一下你的想法对不对:

代码语言:javascript
代码运行次数:0
运行
复制
bool(-1)
bool('0')
bool(" ")
bool('False')
"" == False
1 == True
0 is None
0.1 + 0.2 == 0.3

对于 Python 中的 bool 类型,你还有什么想了解的内容?欢迎在留言区讨论。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-04 13:31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档