''' 學習pyhon基礎 0xAF 十六進制 010 八進制 pow(2,3) 2 的3 次方 __future__ 把下一版本的特性導入當前版本\ 轉移 r 標識源字符串python 有6中建序列:列表, 元祖 字符串 Unicode字符串 buffer對象 xrange對象通用序列操做: 索引,分片 序列相加,乘法 成員資格 長度 最小值 最大值成員資格: 用In檢查是否在序列中[2:10:1] 1表示步長將有字符組成的列表轉化成字符串 ''.join(somelist) 列表的修改, list[2]=xx del list[2] 刪除 count 統計出現的次數 [1,2,4,3,2,1,4].count(1) extend(list) index('value') 得到下表 reverse 反轉字符串 排序: key = len reverse = true 模板字符串: s = Template('A $thing must never $action') d = {} d['thing'] = 'selen' d['action'] = 'act' s.substitute(d) from string import Template s = Tempalte('$x .oooo') s.substitute(x= 'hello') 字符串的格式化: 字典:len 返回鍵值對的數量 d[k] 返回值 del d[k] 刪除爲k 的項 k in d 檢查是否存在鍵爲k的項 d.get('name') 有則返回value 無則返回none d.items() 轉化爲list d.iteritems() 轉化爲迭代器 d.keys() 以列表返回鍵 d.update(d) 更新一個字典 d.setdefault('name',N/A)列表推到式:[x*x for x in range(10)][x*x for x in range(10) if x%3 == 0] callable() 判斷函數是否可用文檔化函數 print(help()) '''storage = {}me = 'Magnus Lie Hetland'storage['first'] = [me]storage['middle'] = [me]storage['last'] = [me]def init(data): data['first'] = {} data['middle'] = {} data['last'] = {}def lookup(data,label,name): return data[label].get(name) #得到鍵的值storage = {}init(storage)print(storage)def stor(data,full_name): names = full_name.splite() #分紅列表 print(names) if len(names) == 2 :names.insert(1,'') labels = 'first','middle','last' for label,name in zip(labels,names): #返回一個可迭代對象 people = lookup(data,label,name) #返回label的值 if people: people.append(full_name) else: data[label][name] = [full_name]'''收集參數:def print_params(x,y,z=3,*pospor,**keypar): print(x,y,z) print(pospor) print(keypar)print_params(1,2,3,4,5,6,foo =1,bar =2)1,2,3(4,5,6){foo: 1,bar:2}'''def add(x,y): return x+ypar=(1,2)add(*par) #參數收集的逆過程def hello_3(greet='hello',name='world'): print('%s,%s'%(greet,name))par = {'name':'selen','greet':'hello'}hello_3(**par) #解字典def stor(**kwargs): return 'once there was a '\ '%(job)s called %(name)s.'%kwargsdef power(x,y,*other): if other: print('recv:'.other) else: return pow(x,y)def interval(start,stop=None,step=1): if stop is None: start, stop = 0,start result = [] i=start while i< stop: result.append(i) i+=step return result#做用域x = 1scope = vars() #返回一個不可修改字典print(scope['x'])def search(sequeue,number,lower = 0,upper = None): if upper is None: upper = len(sequeue)-1 if lower == upper: assert number == sequeue[upper] return upper else: middle = (lower+upper)//2 if number > sequeue['middle'] return search(sequeue,number,middle=1,upper) else: return search(sequeue,number,lower,middle-1 )多態 封裝__metclass__ =type 使用新式類變量綁定一個方法。