Python優(yōu)雅寫(xiě)法,讓你工作效率翻2倍

我們都知道,Python 的設(shè)計(jì)哲學(xué)是「優(yōu)雅」、「明確」、「簡(jiǎn)單」。這也許很多人選擇 Python 的原因。但是我收到有些伙伴反饋,他寫(xiě)的 Python 并不優(yōu)雅,甚至很臃腫,那可能是你的姿勢(shì)不對(duì)哦!今天就給大家?guī)?lái) Python 語(yǔ)句的十大優(yōu)雅之法。

學(xué)習(xí)Python中的小伙伴,需要學(xué)習(xí)資料的話,可以到我的微信公眾號(hào):Python學(xué)習(xí)知識(shí)圈,后臺(tái)回復(fù):“01”,即可拿Python學(xué)習(xí)資料

為多個(gè)變量賦值

有時(shí),有多個(gè)變量需要賦值,這時(shí)你會(huì)怎么賦值呢?

常規(guī)方法:

常規(guī)方法是給變量逐個(gè)賦值。

a = 0
b = 1
c = 2

優(yōu)雅方法:

直接按順序?qū)?yīng)一一賦值。

a, b, c = 0, 1, 2

序列解包

需要取出列表中的元素。

常規(guī)方法:

一般我們知道可以通過(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)雅方法:

給出對(duì)應(yīng)變量接收所有元素。

info = ['brucepk', 'man', 'python']
name,sex,tech = info
print(name,sex,tech)

# 結(jié)果
brucepk man python

優(yōu)雅你的判斷語(yǔ)句

我們用判斷語(yǔ)句來(lái)定義一個(gè)絕對(duì)值函數(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ù)兩次判斷的語(yǔ)句,條件都符合時(shí)才執(zhí)行語(yǔ)句。

常規(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

多個(gè)值符合條件判斷

多個(gè)值任意一個(gè)值符合條件即為 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ǔ)句更優(yōu)雅。

num = 1
if num in(1,3,5):
    type = '奇數(shù)'
print(type)

# 結(jié)果
奇數(shù)

判斷是否為空

判斷元素是空還是非空。

常規(guī)方法:

一般我們想到的是 len() 方法來(lái)判斷元素長(zhǎng)度,大于 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í)行條件是可以簡(jiǎn)寫(xiě)的,只要條件 是非零數(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)容判斷至少一個(gè)成立

常規(guī)方法:

用 or 連接多個(gè)條件。

math,English,computer =90,80,88
if math<60 or English<60 or computer<60:
    print('not pass')

# 結(jié)果
not pass

優(yōu)雅方法:

使用 any 語(yǔ)句。

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)進(jì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ǔ)句優(yōu)化

舉例:生成 [1x1,2x2,3x3,4x4,5x5]。

常規(guī)方法:

使用簡(jiǎn)單的 for 循環(huán)可以達(dá)到目的。

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)雅的寫(xiě)法學(xué)會(huì)了嗎?自己趕緊動(dòng)手試試吧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容