pythonic可以定義為:充分體現python自身特色的**風格。
在語法上,舉個常見的例子,在其他語言(如c)中,兩個變數的交換:
int a = 1, b = 2;
int tmp = a; a = b; b = tmp;
利用python的packaging/unpackaging機制,pythonic的**就需一行:
a, b = b, a
另外,遍歷乙個容器時,類似其他程式語言的**如下:
length = len(alist)
i = 0
while i < length
do_sth_with(alist[i])
i+=1
而pythonic的**如下
for i in alist
do_sth_with(i)
故pythonic的乙個藥酒就是對python語法本身的充分發揮,寫出來的**帶著python味兒。
編寫python**時,應該充分利用python的語法,但不應過分的使用奇技淫巧,比如利用python的slice語法,可以寫出如下**
a = [1,2,3,4]
b = 'asdfghjkl'
print a[::-1]
print b[::-1]
對於這樣一段**恐怕不是一眼就可以看出其作用,實際上更好的體現pythonic的**是充分利用python庫里的reversed()函式:
print list(reversed(a))
print list(reversed(b))
寫pythonic的**需要對標準庫有充分的理解,特別是內建函式和內建資料型別。
比如對字串初始化:print 'hello %s!' % ('tom', )
%s是非常影響可讀性的,因為數量多了以後,很難清除哪乙個佔位符對應哪乙個實參
對應的pythonic的**應該是這樣的
print 'hello %(name)s!' %
針對value =
print ='%(greet)s from %(language)s.' % value
更pythonic的**如下:
print 『 from .' .format(greet = 'hello world', language: 'python')
str.format()方法非常清晰地表明了語句的意圖,事實上,str.format()也成為python最為推薦的字串格式化方法。
pythonic的學習筆記
隨著時間的推移,python語言不斷演進,社群不斷成長,湧現了許多關於如何正確地使用 python 的 ideas。一方面 python 語言推薦使用大量的慣用法來完成任務 完成任務的唯一方法 另一方面,社群不斷演變的新的慣用法的又反過來影響了語言的進化,以更好地支援慣用法。比如新進入的字典的 ge...
Pythonic版二分查詢實現過程原理解析
更多程式設計教程請到 菜鳥教程 前提 公升序陣列,待查元素在陣列中。二分查詢 就是乙個遞迴函式c。待查元素a,當前陣列中位數b,如果b a則返回b的索引,b a則在b左側的子陣列中呼叫函式c,否則在b右側子陣列中呼叫函式c。第一次思考,按著上面的思路程式設計後的結果 def binary searc...
python推導式pythonic必備
推導式 又稱解析式 是python的 種獨有特性。推導式是可以從 個資料序列構建另 個新的資料序列的結構體。共有三種推導 列表推導式 list comprehensions 列表推導式 又稱列表解析式 提供了 種簡明扼要的方法來建立列表。它的結構是在乙個中括號裡包含乙個表示式,然後是乙個for語句,...