简洁而优雅的链式比较
先看一个示例:
>>> False == False == True
False
你知道这个表达式为什么会会返回 False 吗?
它的运行原理与下面这个类似:
if 80 < score <= 90:
print("成绩良好")
如果你还是不明白,那我再给你整个第一个例子的等价写法。
>>> False == False and False == True
False
这个用法叫做链式比较。
and 和 or 的短路效应
and 和 or 是我们再熟悉不过的两个逻辑运算符,在 Python 也有它的妙用。
当一个 or 表达式中所有值都为真,Python会选择第一个值
当一个 and 表达式 所有值都为真,Python 会选择最后一个值。
示例如下:
>>>(2 or 3) * (5 and 6 and 7)
14 # 2*7
连接多个列表最极客的方式
>>> a = [1,2]
>>> b = [3,4]
>>> c = [5,6]
>>>
>>> sum((a,b,c), [])
[1, 2, 3, 4, 5, 6]
用户无感知的小整数池
为避免整数频繁申请和销毁内存空间,Python 定义了一个小整数池 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。
以下代码在终端Python环境下测试,如果在IDE中测试,由于 IDE 的影响,效果会有所不同。
>>> a = -6
>>> b = -6
>>> a is b
False
>>> a = 256
>>> b = 256
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False
>>> a = 257; b = 257
>>> a is b
True
问题又来了:最后一个示例,为啥是True?
因为当你在同一行里,同时给两个变量赋同一值时,解释器知道这个对象已经生成,那么它就会引用到同一个对象。如果分成两行的话,解释器并不知道这个对象已经存在了,就会重新申请内存存放这个对象。
-
原理
+关注
关注
4文章
550浏览量
45791 -
python
+关注
关注
57文章
4858浏览量
89590 -
解释器
+关注
关注
0文章
103浏览量
6935
发布评论请先 登录
跟老齐学Python:从入门到精通
【「# 运算放大器参数解析与LTspice应用仿真」阅读体验】+全书概览与第一章阅读分享
C51单片机及C语言知识点必备秘籍
电机选型计算公式与知识点汇总
电气工程师必知必会的100个电⽓知识点分享
华邦电子安全闪存关键知识点
功率器件热设计基础知识
Aigtek功率放大器应用:电感线圈的知识点分享
后悔没有早点看到:天线设计中的知识点!

python基础知识点(三)
评论