標籤:strip for MF 上海 soho efault 查詢 crc collect
一,遞迴函式
1 #在列表l中,想要找到其中一個值,二分法可以大大節省查詢時間 2 l=[2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88] 3 #如果想找到66 的位置,而又不讓使用index(66) 4 def search(num,l,start=None,end=None): 5 start = start if start else 0 6 end = end if end is None else len(l) - 1 7 mid = (end - start)//2 + start 8 if start > end: 9 return None10 elif l[mid] > num :11 return search(num,l,start,mid-1)12 elif l[mid] < num:13 return search(num,l,mid+1,end)14 elif l[mid] == num:15 return mid16 17 18 #二分法只能尋找有序的數列
二分法尋找
menu = { ‘北京‘: { ‘海澱‘: { ‘五道口‘: { ‘soho‘: {}, ‘網易‘: {}, ‘google‘: {} }, ‘中關村‘: { ‘愛奇藝‘: {}, ‘汽車之家‘: {}, ‘youku‘: {}, }, ‘上地‘: { ‘百度‘: {}, }, }, ‘昌平‘: { ‘沙河‘: { ‘老男孩‘: {}, ‘北航‘: {}, }, ‘天通苑‘: {}, ‘回龍觀‘: {}, }, ‘朝陽‘: {}, ‘東城‘: {}, }, ‘上海‘: { ‘閔行‘: { "人民廣場": { ‘炸雞店‘: {} } }, ‘閘北‘: { ‘火車戰‘: { ‘攜程‘: {} } }, ‘浦東‘: {}, }, ‘山東‘: {},}menu
三級菜單
def threeLM(dic): while True: for k in dic:print(k) key = input(‘input>>‘).strip() if key == ‘b‘ or key == ‘q‘:return key elif key in dic.keys() and dic[key]: ret = threeLM(dic[key]) if ret == ‘q‘: return ‘q‘threeLM(menu)遞迴函式實現三級菜單
使用遞迴函式
二,模組
概念:一個模組就是包含了python定義和聲明的檔案
常用模組,分為四個通用類別:
1 使用python編寫的代碼(.py檔案)
2 已被編譯為共用庫或DLL的C或C++擴充
3 包好一組模組的包
4 使用C編寫並連結到python解譯器的內建模組
在內建資料類型(dict、list、set、tuple)的基礎上,collections模組還提供了幾個額外的資料類型:Counter、deque、defaultdict、namedtuple和OrderedDict等。
1.namedtuple: 產生可以使用名字來訪問元素內容的tuple
2.deque: 雙端隊列,可以快速的從另外一側追加和推出對象
3.Counter: 計數器,主要用來計數
4.OrderedDict: 有序字典
5.defaultdict: 帶有預設值的字典
三,時間模組
表示時間的三種方式
在Python中,通常有這三種方式來表示時間:時間戳記、元組(struct_time)、格式化的時間字串:
1 時間戳記(timestamp) :通常來說,時間戳記表示的是從1970年1月1日00:00:00開始按秒計算的位移量。我們運行“type(time.time())”,返回的是float類型。
2 格式化的時間字串(Format String): ‘1999-12-06’
%y 兩位元的年份表示(00-99)%Y 四位元的年份表示(000-9999)%m 月份(01-12)%d 月內中的一天(0-31)%H 24小時制小時數(0-23)%I 12小時制小時數(01-12)%M 分鐘數(00=59)%S 秒(00-59)
常用時間表示
3 元組(struct_time) :struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天等)
四,random模組
import randomdef v_code(): code = ‘‘ for i in range(5): num=random.randint(0,9) alf=chr(random.randint(65,90)) add=random.choice([num,alf]) code="".join([code,str(add)]) return codeprint(v_code())
產生隨機數列
os模組是與作業系統互動的一個介面
sys模組是與python解譯器互動的一個介面
五,re模組
在同一個位置可能出現的各種字元組成了一個字元組,在Regex中用[]表示 字元分為很多類,比如數字、字母、標點等等。
貪婪匹配:在滿足匹配時,匹配儘可能長的字串,預設情況下,採用貪婪匹配
. 是任一字元* 是取 0 至 無限長度? 是非貪婪模式。何在一起就是 取盡量少的任一字元,一般不會這麼單獨寫,他大多用在:.*?x就是取前面任意長度的字元,直到一個x出現
^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+ 網址URL\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14} 郵箱\d{17}[\d|x]|\d{15} 社會安全號碼[A-Za-z0-9_\-\u4e00-\u9fa5]+ 使用者名稱
正則測試
Python 學習日記5