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