我們都知道障涯,Python 的設(shè)計哲學(xué)是「優(yōu)雅」卧土、「明確」、「簡單」像樊。這也許很多人選擇 Python 的原因。但是我收到有些伙伴反饋旅敷,他寫的 Python 并不優(yōu)雅生棍,甚至很臃腫,那可能是你的姿勢不對哦媳谁!今天就給大家?guī)?Python 語句的十大優(yōu)雅之法涂滴。
學(xué)習(xí)Python中的小伙伴,需要學(xué)習(xí)資料的話晴音,可以到我的微信公眾號:Python學(xué)習(xí)知識圈柔纵,后臺回復(fù):“01”,即可拿Python學(xué)習(xí)資料
為多個變量賦值
有時锤躁,有多個變量需要賦值搁料,這時你會怎么賦值呢?
常規(guī)方法:
常規(guī)方法是給變量逐個賦值系羞。
a = 0
b = 1
c = 2
優(yōu)雅方法:
直接按順序?qū)?yīng)一一賦值郭计。
a, b, c = 0, 1, 2
序列解包
需要取出列表中的元素。
常規(guī)方法:
一般我們知道可以通過下標(biāo)獲取具體元素椒振。
info = ['brucepk', 'man', 'python']
name = info[0]
sex = info[1]
tech = info[2]
print(name,sex,tech)
# 結(jié)果
brucepk man python
優(yōu)雅方法:
給出對應(yīng)變量接收所有元素昭伸。
info = ['brucepk', 'man', 'python']
name,sex,tech = info
print(name,sex,tech)
# 結(jié)果
brucepk man python
優(yōu)雅你的判斷語句
我們用判斷語句來定義一個絕對值函數(shù)。
常規(guī)方法:
x = -6
if x < 0:
y = -x
else:
y = x
print(y)
# 結(jié)果
6
優(yōu)雅方法:
x = -6
y = -x if x<0 else x
print(y)
# 結(jié)果
6
區(qū)間判斷
使用 and 連續(xù)兩次判斷的語句澎迎,條件都符合時才執(zhí)行語句庐杨。
常規(guī)方法:
score = 82
if score >=80 and score < 90:
level = 'B'
print(level)
# 結(jié)果
B
優(yōu)雅方法:
使用鏈?zhǔn)脚袛唷?/p>
score = 82
if 80 <= score < 90:
level = 'B'
print(level)
# 結(jié)果
B
多個值符合條件判斷
多個值任意一個值符合條件即為 True 的情況选调。
常規(guī)方法:
num = 1
if num == 1 or num == 3 or num == 5:
type = '奇數(shù)'
print(type)
# 結(jié)果
奇數(shù)
優(yōu)雅方法:
使用關(guān)鍵字 in,讓你的語句更優(yōu)雅灵份。
num = 1
if num in(1,3,5):
type = '奇數(shù)'
print(type)
# 結(jié)果
奇數(shù)
判斷是否為空
判斷元素是空還是非空仁堪。
常規(guī)方法:
一般我們想到的是 len() 方法來判斷元素長度,大于 0 則為非空各吨。
A,B,C =[1,3,5],{},''
if len(A) > 0:
print('A 為非空')
if len(B) > 0:
print('B 為非空')
if len(C) > 0:
print('C 為非空')
# 結(jié)果
A 為非空
優(yōu)雅方法:
if 后面的執(zhí)行條件是可以簡寫的枝笨,只要條件 是非零數(shù)值、非空字符串揭蜒、非空 list 等横浑,就判斷為 True,否則為 False屉更。
A,B,C =[1,3,5],{},''
if A:
print('A 為非空')
if B:
print('B 為非空')
if C:
print('C 為非空')
# 結(jié)果
A 為非空
多條件內(nèi)容判斷至少一個成立
常規(guī)方法:
用 or 連接多個條件徙融。
math,English,computer =90,80,88
if math<60 or English<60 or computer<60:
print('not pass')
# 結(jié)果
not pass
優(yōu)雅方法:
使用 any 語句。
math,English,computer =90,59,88
if any([math<60,English<60,computer<60]):
print('not pass')
# 結(jié)果
not pass
多條件內(nèi)容判斷全部成立
常規(guī)方法:
使用 and 連接條件做判斷瑰谜。
math,English,computer =90,80,88
if math>60 and English>60 and computer>60:
print('pass')
# 結(jié)果
pass
優(yōu)雅方法:
使用 all 方法欺冀。
math,English,computer =90,80,88
if all([math>60,English>60,computer>60]):
print('pass')
# 結(jié)果
pass
遍歷序列的元素和元素下標(biāo)
常規(guī)方法:
使用 for 循環(huán)進行遍歷元素和下標(biāo)。
L =['math', 'English', 'computer', 'Physics']
for i in range(len(L)):
print(i, ':', L[i])
# 結(jié)果
0 : math
1 : English
2 : computer
3 : Physics
優(yōu)雅方法:
使用 enumerate 函數(shù)萨脑。
L =['math', 'English', 'computer', 'Physics']
for k,v in enumerate(L):
print(k, ':', v)
# 結(jié)果
0 : math
1 : English
2 : computer
3 : Physics
循環(huán)語句優(yōu)化
舉例:生成 [1x1,2x2,3x3隐轩,4x4,5x5]渤早。
常規(guī)方法:
使用簡單的 for 循環(huán)可以達到目的职车。
L = []
for i in range(1, 6):
L.append(i*i)
print(L)
#結(jié)果:
[1, 4, 9, 16, 25]
優(yōu)雅方法:
使用列表生成式,一行代碼搞定鹊杖。
print([x*x for x in range(1, 6)])
#結(jié)果:
[1, 4, 9, 16, 25]
Python 這些優(yōu)雅的寫法學(xué)會了嗎悴灵?自己趕緊動手試試吧。