python中的语法糖真的非常多,它们的存在是为了快速解决一些问题。用起来确实方便了,但可读性上却打了折扣。很多初学者在学习期间对语法糖又爱又恨,毕竟这些令人晦涩难懂的小家伙令人头大,但又惊讶于它们的强大。
一、列表推导式:多行压缩
列表推导式 绝对是python中绝不可忽视的存在,它的利用率非常高,几乎每个python开发者都会用到它,但也不妨碍它让人难以阅读。
多行代码
我们循环一个10个数字,从0~9,然后将 大于3 的数字全部拿出来放到一个新的列表中,代码如下:
data = []
for i in range(10):
if i > 3:
data.append(i)这是一个非常简单的代码,现在咱们用 列表推导式 将其优化:
压缩代码
列表推导式是非常高效的代码,不管是运行还是写法上,都是独树一帜,虽然它不好读,但卡卡非常推荐你使用它。
data = [i for i in range(10) if i > 3]得分
推荐:⭐⭐⭐⭐⭐
实用:⭐⭐⭐⭐⭐
可读性:⭐⭐⭐
二、海象运算符:高效赋值
海象运算符 是语法糖里的冷门选手,它出现在 Python 3.8 之后,允许在表达式里赋值并得到变量。
多行判断
下面的代码中,当你输入回车键它是绝对不会输出任何内容的;而随便写点东西,它是绝对会输出内容的:
output = input('请输入内容:')
if output:
print(f'您输入的是 {output}')一行判断
现在我们用 海象运算符 来优化这行代码,让它变短:
if output := input('请输入内容:'):
print(f'您输入的是 {output}')得分
推荐:⭐⭐
实用:⭐⭐⭐
可读性:⭐⭐
三、三元运算符:判断杀手
在很多语言中,存在着 三目运算符 这个强大的选手,而在python中有它的远房亲戚 三元运算符,它能够让判断变得加剪短。
不是就是
开发中经常遇到一种判断,不是它,就是它,二选一,就像人类,不是男人就是女人:
person = 1
if person == 1:
print('是男人')
else:
print('是女人')一行判断
现在如何利用三元运算符来解决类似的判断呢,代码如下:
person = 1
msg = '是男人' if person == 1 else '是女人'
print(msg)得分
推荐:⭐⭐⭐⭐
实用:⭐⭐⭐⭐⭐
可读性:⭐⭐⭐
四、链式比较:数学般的判断
如果想让python的数字判断看上去更像数学,那么就需要用 链式比较 来修改数字的判断。
判断区间
如果想判断一个数字大于某个值小于某个值,我们可以用 and 来拼接:
x = 4
if x > 1 and x < 10:
print('x大于1小于10')接近数学
现在我们用链式比较来修改这个判断,让其更像数学比较式:
x = 4
if 1 < x < 10:
print('x大于1小于10')得分
推荐:⭐⭐⭐⭐⭐
实用:⭐⭐⭐⭐⭐
可读性:⭐⭐⭐⭐⭐
五、解包赋值:快速赋值
想要获得 元组、列表 中的内部数据,那么解包赋值会很方便,但有时候可读性确实不佳。
多行赋值
普通情况下,我们将通过索引一项一项赋值,会非常麻烦:
data = [1, 2, 3, 4]
a = data[0]
b = data[1]
c = data[2:]
print(a, b, c)快速赋值
现在通过解包赋值快速赋值,立马获取全部内容:
data = [1, 2, 3, 4]
a, b, *c = data
print(a, b, c)得分
推荐:⭐⭐⭐⭐
实用:⭐⭐⭐⭐
可读性:⭐⭐⭐
六、总结
今天的内容是非常基础的知识点,也是帮助那些初学者对于一些常用的语法糖提升一些认知,哪些是推荐用的,哪些是不太推荐用的。
不过在未来等到经验增长,开发实力提升后,都会有自己的习惯,用哪些语法糖顺手即可。
更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。
想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!