Python 之禪之中有這樣幾句話:
優美勝於丑陋(Python 以編寫優美的代碼為目標)
明了勝於晦澀(優美的代碼應當是明了的,命名規范,風格相似)
簡潔勝於復雜(優美的代碼應當是簡潔的,不要有復雜的內部實現)
復雜勝於凌亂(如果復雜不可避免,那代碼間也不能有難懂的關系,要保持接口簡潔)
扁平勝於嵌套(優美的代碼應當是扁平的,不能有太多的嵌套)
間隔勝於緊湊(優美的代碼有適當的間隔,不要奢望一行代碼解決問題)
可讀性很重要(優美的代碼是可讀的)
我想這應該可以大致解釋一下 Pythonic 了。之前我在學習和寫 Python 的時候, 都是在用我當初寫 Java 的那些東西。絲毫沒有一點 Python 特有的感覺, 感覺就像在寫 Java 代碼,只不過在使用 Python 的 語法復制一遍,直到今天我看見了這樣的Pythonic。明白了這才是 Python 。
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 。四個字, 不忍卒讀,感覺自己就是個傻子,在交換兩個數時,我這樣寫的:
交換 a, b test = a a = b b = test Pythonic: a, b = b, a .....
唉, 我腦殼疼。。。,從來沒想到過啊。。。
ps:
學無止境,且行且珍惜, 與君共勉!