Pythonic是什麼?

Python 之禪之中有這樣幾句話:html

優美勝於醜陋(Python 以編寫優美的代碼爲目標)
明瞭勝於晦澀(優美的代碼應當是明瞭的,命名規範,風格類似)
簡潔勝於複雜(優美的代碼應當是簡潔的,不要有複雜的內部實現)
複雜勝於凌亂(若是複雜不可避免,那代碼間也不能有難懂的關係,要保持接口簡潔)
扁平勝於嵌套(優美的代碼應當是扁平的,不能有太多的嵌套)
間隔勝於緊湊(優美的代碼有適當的間隔,不要奢望一行代碼解決問題)
可讀性很重要(優美的代碼是可讀的)

我想這應該能夠大體解釋一下 Pythonic 了。以前我在學習和寫 Python 的時候, 都是在用我當初寫 Java 的那些東西。絲毫沒有一點 Python 特有的感受, 感受就像在寫 Java 代碼,只不過在使用 Python 的 語法複製一遍,直到今天我看見了這樣的Pythonic。明白了這纔是 Python 。app

Python 快排。學習

 1 def quick_sort(array):
 2     if len(array) <=1:
 3         return array
 4     left, right = [], []
 5     avg = array.pop()
 6     for x in array:
 7         if x >= avg:
 8             right.append(x)
 9         else:
10             left.append(x)
11     return quick_sort(left) + [avg] + quick_sort(right)

 

在對比一下我以前寫的快排 https://www.cnblogs.com/JulyShine/articles/10017886.html 。四個字, 不忍卒讀,感受本身就是個傻子,在交換兩個數時,我這樣寫的:ui

交換 a, b

test = a
a = b
b = test

Pythonic:

a, b = b, a

.....

唉, 我腦袋疼。。。,歷來沒想到過啊。。。spa

ps:code

學無止境,且行且珍惜, 與君共勉!htm

相關文章
相關標籤/搜索