最近在研究動態腳本語言 Python , 出於對其語言精簡度的喜歡及大學時期對 matlab 這樣的數學領域語言的懷念, 再加上筆者是C++起家,Python中所涉及的del機制與特殊方法重載(類比於c++中的運算符重載)等
, 讓筆者不自覺地玩起了 Python 。關於Python 發展歷程與基本語法這里不再多說,主要記錄一下學習過程中敲的一些樣例代碼。
首先介紹一下最基本的多行、帶中文字符和特殊字符的字符串打印:
# -*- coding: utf-8 -*- #注意在首行加上上面這行注釋,否則解釋器會報錯 print r'''中文測試/('') 來個高難度的‘’/* 哈哈!()"" '''
關於帶默認參數、可變參數的自定義函數及偏函數:
import functools print '------------ 自定義默認參數函數 -----------------' def power(x,n = 2): s = 1 while n > 0: s = s * x n = n - 1 return s print power(3) print power(3, 3) print '------------ 算定義可變參數 -----------------' def fn(*args): print args print fn(36,'39',47) print '------- 函數默認參數 -----' def myInt2(x,n = 2): return int(x,n) print myInt2('1101') print '------------ partial -----------------' int2 = functools.partial(int,base = 2) print int2('1001')
生成列表打印及其在條件過濾和嵌套循環中的應用:
print '------------直接打印------------' print range(0,13) print '------------生成列表---------------' print [x * x for x in range(1,8)] print '-------------- 生成列表的高級用法 ------------------' d = { 'Adam': 90, 'Lisa': 80, 'Bart': 68} tdList = ['<tr><td>%s</td><td>%s</td></tr>' % (name,score) for name,score in d.iteritems()] print '<table>' print '<tr><th>Name</th><th>Score</th></tr>' print '\n'.join(tdList) print '</table>' print tdList print '------------------ 列表條件過濾 ------------------' print [x * x for x in range(1,11) if x % 2 != 0] print '------------- 兩種方式 實現多層嵌套打印 ----------------' print '------------ 1.傳統方式 -----------' L = [] for m in 'ABC': for n in '123': L.append(m + n) print L print '------------- 2.生成列表 ---------' print [m + n for m in 'abc' for n in '123']
關於迭代,這里以dict的迭代為例:
print '------------ enumerate ---------------' L = ['Adam','Lisa','Bart','Paul'] for index,value in enumerate(L): print index,'-',value print '------------- iteration of dict -----------' d = {'Adam': 95, 'Lisa': 80, 'Bart': 60} print '------ 直接打印值 --------' print d.values() print '------ 普能迭代 --------' for v in d.values(): print v print '------ 省內存迭代 --------' for v in d.itervalues(): print v print '------ 直接打印鍵值對 --------' print d.items() print '------ 鍵值一起迭代 --------' for k,v in d.iteritems(): print k,':',v
最后提一下lambda函數,感覺它跟生成列表一樣,能幫助使用者快生成一個自定義函數:
f = lambda x: x * x print f(3) myabs = lambda x: -x if x < 0 else x print myabs(-11) print myabs(12)
