來源: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 這些優雅的寫法學會了嗎?本身趕忙動手試試吧。