Python冷知识

本文分享了10个Python编程的小技巧,包括省略号对象的使用、增量赋值的性能优势、索引越界处理、死循环的创建、intern机制、_的使用、for else和try else的特殊用法、空字符串的行为、特殊的运算符使用以及Python3.6之后字典的有序性变化。这些技巧对于提升Python编程效率和理解语言特性有帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、省略号也是对象¶
这有什么用呢?没什么实际用处,可以替代pass做占位符

print(type(...))
bool(...)

2、增量赋值的性能更好¶
下面两行其实在效果上是等价的,但在性能上,第二行高于第一行 这是因为+=的魔法方法是__iadd__ ,而+的魔法方法是__add__, 这两个方法的实现是不一样的,有兴趣的可以自己去了解

a = 1; a += 1
b = 1; b = b + 1

3、索引越界
报错还是输出什么?

list1 = [1, 2, 3]
print(list1[5:])

4、for写一个死循环

for i in iter(int, 1):
    pass

iter的用法除了将序列变为迭代器,还能接受两个参数,一个是callable参数,另一个是sentinel参数,当这个callable返回的是sentinel,则迭代停止 而int是一个内建方法,只会返回0

5、intern机制

s1 = 'hello'
s2 = 'hello'
s1 is s2

同样的字符串对象只保留一份,这就是intern机制,但当字符串有除ASCII以外的字符或长度超过20个字符时,不启用intern机制

6、_ 的使用
当要使用一些没有意义的变量时,一般会用_代替,比较常见的循环,比如 for _ in range(10) 我们只在乎循环次数,而不在乎循环变量

7、for else和try else
if else都知道怎么使用,那for else和try else呢

8、空字符串
想想下面的结果又觉得没有错,就是不对劲

print('' in 'aabb')
print('aabb'.count(''))

9、—
python允许不加括号,因为并不会产生歧义,但建议别这样写代码,没什么意义,还不好阅读,当然你非要把3写成------3也不报错

print(--3)
print(6---+-------------------4)

10、字典有序
字典的无序性一直是教学的一个知识点,但Python3.6之后,字典其实是有序的,但官方是这样解释的:这个新实现的顺序保留方面被认为是一个实现细节,不应该依赖(这可能会在未来改变,因为考虑到向旧版本兼容的问题)。不过在Python3.7中,字典有序已经变成语言特性了。因为更节省内存,而带来的‘副作用’不过是字典的有序化。

原文链接(出处)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值