Pythonic是什么?


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:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM