Python優雅寫法,讓你工做效率翻2倍

來源:Python知識圈python

ID:PythonCircleapp

做者:pk哥ide

閱讀文本大概須要 2.5 分鐘。函數

咱們都知道,Python 的設計哲學是「優雅」、「明確」、「簡單」。這也許不少人選擇 Python 的緣由。可是我收到有些夥伴反饋,他寫的 Python 並不優雅,甚至很臃腫,那多是你的姿式不對哦!今天就給你們帶來 Python 語句的十大優雅之法。優化

獲取更多技術知識點+v156 5219 9186,歡豆在線解答哦~spa

爲多個變量賦值設計

有時,有多個變量須要賦值,這時你會怎麼賦值呢?orm

常規方法:字符串

常規方法是給變量逐個賦值。it

a = 0
b = 1
c = 2

優雅方法:

直接按順序對應一一賦值。

a, b, c = 0, 1, 2


序列解包

須要取出列表中的元素。

常規方法:

通常咱們知道能夠經過下標獲取具體元素。

info = ['brucepk', 'man', 'python']
name = info[0]
sex = info[1]
tech = info[2]
print(name,sex,tech)
# 結果
brucepk man python

優雅方法:

給出對應變量接收全部元素。

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

優雅你的判斷語句

咱們用判斷語句來定義一個絕對值函數。

常規方法:

x = -6
if x < 0:
 y = -x
else:
 y = x
print(y)
# 結果
6

優雅方法:

x = -6
y = -x if x<0 else x
print(y)
# 結果
6

區間判斷

使用 and 連續兩次判斷的語句,條件都符合時才執行語句。

常規方法:

score = 82
if score >=80 and score < 90:
 level = 'B'
print(level)
# 結果
B

優雅方法:

使用鏈式判斷。

score = 82
if 80 <= score < 90:
 level = 'B'
print(level)
# 結果
B

多個值符合條件判斷

多個值任意一個值符合條件即爲 True 的狀況。

常規方法:

num = 1
if num == 1 or num == 3 or num == 5:
 type = '奇數'
print(type)
# 結果
奇數

優雅方法:

使用關鍵字 in,讓你的語句更優雅。

num = 1
if num in(1,3,5):
 type = '奇數'
print(type)
# 結果
奇數

判斷是否爲空

判斷元素是空仍是非空。

常規方法:

通常咱們想到的是 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 爲非空')
# 結果
A 爲非空

優雅方法:

在以前的文章 零基礎學 python 之 if 語句 中講過,if 後面的執行條件是能夠簡寫的,只要條件 是非零數值、非空字符串、非空 list 等,就判斷爲 True,不然爲 False。

A,B,C =[1,3,5],{},''
if A:
 print('A 爲非空')
if B:
 print('B 爲非空')
if C:
 print('C 爲非空')
# 結果
A 爲非空

多條件內容判斷至少一個成立

常規方法:

用 or 鏈接多個條件。

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

優雅方法:

使用 any 語句。

math,English,computer =90,59,88
if any([math<60,English<60,computer<60]):
 print('not pass')
# 結果
not pass

多條件內容判斷所有成立

常規方法:

使用 and 鏈接條件作判斷。

math,English,computer =90,80,88
if math>60 and English>60 and computer>60:
 print('pass')
# 結果
pass

優雅方法:

使用 all 方法。

math,English,computer =90,80,88
if all([math>60,English>60,computer>60]):
 print('pass')
# 結果
pass

遍歷序列的元素和元素下標

常規方法:

使用 for 循環進行遍歷元素和下標。

L =['math', 'English', 'computer', 'Physics']
for i in range(len(L)):
 print(i, ':', L[i])
# 結果
0 : math
1 : English
2 : computer
3 : Physics

優雅方法:

使用 enumerate 函數。

L =['math', 'English', 'computer', 'Physics']
for k,v in enumerate(L):
 print(k, ':', v)
# 結果
0 : math
1 : English
2 : computer
3 : Physics

循環語句優化

以前的文章 零基礎學 Python 之列表生成式 中講過列表生成時的用法,舉例:生成 [1x1,2x2,3x3,4x4,5x5]。

常規方法:

使用簡單的 for 循環能夠達到目的。

L = []
for i in range(1, 6):
 L.append(i*i)
print(L) 
#結果:
[1, 4, 9, 16, 25]

優雅方法:

使用列表生成式,一行代碼搞定。

print([x*x for x in range(1, 6)]) 
#結果:
[1, 4, 9, 16, 25]


Python 這些優雅的寫法學會了嗎?本身趕忙動手試試吧。

相關文章
相關標籤/搜索