Python是我最喜欢的语言,没有之一!
Python 是一门语法很简洁的语言,它的设计哲学就是:
优美胜于丑陋, 明了胜于晦涩,简单胜过复杂。
下面就给大家介绍几种Pythonic的写法,让你的代码简洁明了,又不失逼格!我由浅入深,先介绍简单的一些trick,再到高级用法。
注:以下代码都是基于Python 3.X
常规写法:
a = 1
b = 2
c = 3
优雅写法:
a, b, c = 1, 2, 3
常规写法:
student = ['Jack', 23, 'man']
name = student[0]
age = student[1]
sex = student[2]
print('name: %s, age: %s, sex: %s' % (name, age, sex))
优雅写法:
student = ['Jack', 23, 'man']
name, age, sex = student
print('name: %s, age: %s, sex: %s' % (name, age, sex))
常规写法:
x = -3
if x < 0:
y = -1
else:
y = 1
print(y)
优雅写法:
x = -3
y = -1 if x < 0 else 1
print(y)
常规写法:
score = 90
if score >= 0 and score < 60:
print('挂科')
else:
print('通过')
优雅写法:
score = 90
if 0 <= score < 60:
print('挂科')
else:
print('通过')
常规写法:
status_code = 0
if status_code == -1 or status_code == -2 or status_code == -3:
print('fail')
else:
print('success')
优雅写法:
status_code = 0
if status_code in [-1, -2, -3]:
print('fail')
else:
print('success')
常规写法:
A, B, C = [1, 2, 3], {}, ''
if len(A) > 0:
print('A非空')
if len(B) > 0:
print('B非空')
if len(C) > 0:
print('C非空')
优雅写法:
A, B, C = [1, 2, 3], {}, ''
if A:
print('A非空')
if B:
print('B非空')
if C:
print('C非空')
常规写法:
math, english, computer = 30, 90, 80
if math < 60 or english < 60 or computer < 60:
print('挂科')
else:
print('通过')
优雅写法:
math, english, computer = 30, 90, 80
if any([math < 60, english < 60, computer < 60]):
print('挂科')
else:
print('通过')
常规写法:
math, english, computer = 70, 90, 80
if math > 60 and english > 60 and computer > 60:
print('通过')
else:
print('挂科')
优雅写法:
math, english, computer = 70, 90, 80
if all([math > 60, english > 60, computer > 60]):
print('通过')
else:
print('挂科')
这个非常常用,特别是遍历列表的时候,我们经常需要同时获取到下标和元素的值。
常规写法:
pets = ['cat', 'dog', 'rabbit', 'bird']
for i in range(len(pets)):
print('%s : %s' % (i, pets[i]))
优雅写法:
pets = ['cat', 'dog', 'rabbit', 'bird']
for i, pet in enumerate(pets):
print('%s : %s' % (i, pet))
比起通过pets[i]
去获取元素的方式,直接用enumerate
返回下标和元素更方便。
这个是我最喜欢、也是最常用的一种用法。好不夸张的说,一行顶十行!
需求:生成一个区间为[0-9]的列表
常规写法:
nums = []
for i in range(10):
nums.append(i)
print(nums)
# output:
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
优雅写法:
nums = [i for i in range(10)]
print(nums)
# output:
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
小伙伴们,你们觉得还有哪些更Pythonic的写法呢?欢迎在留言区分享,互相促进一下哦。