Python 學習日記5

來源:互聯網
上載者:User

標籤: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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.