日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 慕课课程笔记(一)

發(fā)布時間:2025/4/5 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 慕课课程笔记(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python 慕課課程筆記

1.python 是動態(tài)語言,而 java 是靜態(tài)語言。動態(tài)語言變量本身的類型時不固定的,而靜態(tài)語言在變量定義時就必須指定變量的類別。
2. 在python 代碼中書寫 a=ABC" 時,Python解釋器干了兩件事情:

1.在內存中創(chuàng)建了一個“ABC”的字符串
2.在內存中創(chuàng)建了一個名為 a 的變量,并把它指向“ABC”

所以在之后進行 b=a 的賦值操作時,b會指向a指向的這個字符串。
3.關于 python 中的字符串表示:

  • rabc這種形式,可以不用轉義,但不能表示多行和帶 ‘’“”的字符創(chuàng)。
  • ′′′abc′′′ 這種形式,可以表示多行
  • r′′′abc′′′這種形式兼具以上兩者的功能
  • 4.python 到后來改成 unicode 編碼后,可以支持中文的書寫。不過形式如下:

    u;搭配 r 可以這么使用: ur'''?\^-^/?'''

    5.在 python 編譯器中遇到 UnicodeDecodeError 的時候,可以在代碼開頭加上如下的注釋:

    # -*- coding: utf-8 -*-

    目的是告訴 python 編譯器用 UTF-8 編碼讀取代碼。
    6.python 中的除法 / 同樣為整除。
    7.python 中有兩個布爾型的變量,True 和 False ,并且它們之間有與(and)、或(or)、非(not)三種運算。
    8.python 中的空值處理:python 中將 0,空字符串  ,和 None 看做 False,而其他數值和非空字符串則看成 True。
    9.python 中的短路規(guī)則:

    表達式\條件a==Truea==False
    a and b返回 b返回 a
    a or b返回 a返回 b

    所以在計算的時候,往往采取短路規(guī)則,并不是全部計算完畢后才返回結果。
    10.python 中的幾個基本數據結構:

    list 列表 [ ]

    • 數學意義上的有序結合。
    • 可以使用索引來進行引用 eg. L[1]。 并且 python 中也有倒敘索引,從-1 開始。不管是正序索引還是倒序,都要注意不要越界。
    • 列表的插入有兩個方法 append() 和 insert()。前者只有一個參數,是插入表尾;后者有兩個參數,可以指定插入的位置,第一個參數是索引號。
      eg. append('Xiaoming') insert(0, 'Xiaoming')
    • 列表刪除元素用 pop()。
      eg. pop(2) 參數是索引號。注意先大后小的原則,避免元素刪除造成順序改變。

    tuple 元組 ( )

    • 元組也是一種有序的列表,與 list 很類似,但一旦創(chuàng)建完畢,就不能修改了。
    • 沒有 list 中的 pop,append,insert 方法。
    • 獲取元素的方法與 list 是一樣的。
    • 創(chuàng)建單元素 tuple 時,為避免歧義,要這么定義:
      eg. t=(1,) // 不能漏掉這個逗號
    • tuple 的不變性是指向的不變,并不是元素內容的不變。
      eg. tuple 的一個元素是一個 list

    11.循環(huán)控制

    • python 縮進最好使用 4個空格,而不用 Tab 鍵。
    • 交互式環(huán)境中敲代碼要注意縮進問題,退出縮進要多敲一行回車。
    • python 中的多條件 if 語句,用的是 elif
    • for 循環(huán)用于遍歷 list, tuple 十分方便,
      eg. for name in L 其中 name 是在 for 循環(huán)中定義的,意思是取得 L 的每個元素賦值給 name。

    12.python 中的特殊數據結構:

    dict 詞典 { }

    • 詞典是一個 key:value 的映射
    • len() 函數可以計算任意集合的大小
    • 可以通過 d[key] 的方式來查找 value
    • 可以用 in 操作符來看看鍵是否在詞典中
      eg. if 'Paul' in d:
    • dict 本身也提供一個 get 方法,如果鍵不存在則返回 None
      eg. d.get('Paul')
    • dict 有三個特點
      • 查找速度快,占用內存多(與 list 相反)。
      • key 不能重復,key:value 對的順序是隨意的。且 dict 內部是無序的,有隨機性。
      • 作為 key 的元素不可變。
    • 直接使用 for 循環(huán)可以便利詞典的 key:
      eg. for key in d: 這樣在循環(huán)體中就可以取得 相應的 value。

    set 集合 ( )

    • set 的元素是無序的,而且沒有重復。
    • 創(chuàng)建 set 的方法是調用 set(),并傳入一個 list,list 的元素將作為 set 的元素。
      eg. set=(['xiaoming','aiping','meijuan'])
    • 訪問:因為是無序的,所以無法用索引訪問,但可以用 in 操作符判斷是否在 set 中。
    • set 的作用特點有點類似于枚舉器。 numerator。
    • set 的更新操作有兩個函數:add() 和 remove(),其參數可以直接是相應的元素。一般后者操作前,一般需要加一個判斷,以看元素是否在 set 中。

    12.python [內置函數查詢];并且可以通過 help() 命令來查詢函數的幫助信息。
    13.python 中的函數內部的 return 會使函數立即執(zhí)行完畢,并返回結果。如果沒有 return 語句,函數也會返回結果,不過結果為 None。

    return None 可以簡寫為 return

    14.python 函數可以返回多個值,實則是返回一個 tuple。因為語法上,返回 tuple 可以不加括號,所以多個變量可以同時接收一個 tuple,并按位置賦給相應的變量。
    15.python 中的遞歸函數:

    1.遞歸函數定義簡單,邏輯清晰。理論上所有的遞歸函數都可以寫成循環(huán)的形式。
    2.使用遞歸函數要防止棧溢出。因為:計算機中函數調用是通過 stack 實現的;每進入一個函數,棧就會加一層棧幀;每當函數返回,棧就會減一層棧幀。由于棧的大小不是無限的,所以遞歸調用的次數過多,會導致棧溢出。

    16.python 中的默認參數:

    1.默認參數的作用是簡化調用。
    eg.python 自帶的 int() 函數就有兩個參數,如果如下所示的形式:
    int('123',8) 則第二個參數指的是規(guī)定的進制。
    2.由于函數參數按從左到右的順序匹配,所以默認參數只能定義在必要參數的后面。
    def fn1(a,b=1,c=2)——正確
    def fn2(a=1,b)——-錯誤

    17.python 中如果想讓一個函數接收任意數量的參數,那么就可以定義一個可變參數,其形式如下:

    def fn(*args)print args

    只需要在參數前加一個*,我們就可以給可變參數傳入0個,1個或多個參數。其實原理同返回多個參數相同,python 將這多個參數組合成一個 tuple 傳給可變參數。其目的一般也是為了簡化調用。
    18.python 中的切片操作:

    1.取前 n 個元素,一般可用循環(huán)來做: for i in range(n)
    2.為避免使用循環(huán),對于這種指定索引范圍的操作,python 提供了切片(slice)操作。
    eg. L[0:3] 表示從索引 0 開始取,直到索引 3 為止,不包括索引 3。即索引 0,1,2,剛好 3 個元素。
    3. 幾種情況:

    • 第一個索引為 0 時,可以省略 L[:3]
    • > 只用一個 : 表示從頭到尾 L[:]
    • 切片操作還可定義第 3 個參數,表示取數的間隔。L[2::3] 表示的就是取 3 的倍數位置的元素。

    4.range 函數可以創(chuàng)建一個數列
    eg. range(1:101) 得到的是一個列表 [1,2,3,4,…,100]
    5.python 也支持倒序切片。
    6.python 沒有提供字符串截取函數,但用切片可以進行同類的操作。

    19.python 中的迭代:

    1.我們可以通過 for 循環(huán)來遍歷 list 或 tuple,這種遍歷操作我們成為迭代。
    2.python for 的迭代對象,是一個集合,不管它有序無序,總是可以依次取得該集合中的每一個元素。
    3.迭代與按下標訪問的不同之處在于,后者是一種具體的迭代實現方式,而前者只關心迭代的結果,并不關心迭代內部是如何實現的。
    4.索引迭代:python 中往往都是取出元素的索引,而非元素本身,所以要想取出索引,可以使用 enumerate() 函數,它返回的每個元素實際是一個元組,包含兩個元素分別為索引和真正的元素。
    它的結構為: [(0,'xiaoming'),(1,'xiaocao')]
    具體操作為:for index, name in enumerate(L)
    5.zip 函數可以將兩個 list 合并為 1個,組合形式類似于 enumerate() 函數的形式,一個典型的代碼為:
    for index, name in zip(range(1, len(L)+1), L)


    Note: 集合是包含一組元素的數據結構,它包括:
    1.有序的集合:list tuple str unicode
    2.無序的集合:set
    3.無序的集合,并且有 key-value 對:dict

    20.關于 dict 的迭代:

    1.直接迭代 dict,取得的是 dict 的 key。
    2.運用 values() 或者 itervalues() 函數進行迭代,可以取得 dict 的 value。
    eg. for v in d.itervalues():
    eg. for v in d.values():
    3.以上的兩個函數迭代結果是一樣的,但是實際機制是不同的。
    values() 方法是將 dict 轉化為只包含 value 的 list
    itervalues() 方法是一次從 dict 中取出 value,所以節(jié)省了 list 的內存
    4.如果一個對象可以迭代,那么用 for 循環(huán)去迭代即可。可見 python 中的迭代是一種更抽象的操作,它不對迭代對象內部的數據有任何的要求。
    5.如果運用 items() 函數的話,可以同時迭代 dict 的 key 與 value。此外也有相應的 iteritems(),區(qū)別同前。
    eg.for key,value in d.items():

    21.python 生成列表:

    1.列表生成式用于在不用循環(huán)的情況下,生成 list
    eg.[x * x for x in range(1, 11)]
    其結果為:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    2.包含 dict 的復雜生成列表:
    eg. 用復雜生成列表生成 html 表格:
    d = { ‘Adam’: 95, ‘Lisa’: 85, ‘Bart’: 59 }

    tds = ['<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(tds) print '</table>' 注:字符串可以用 **%** 來進行格式化,用指定的參數代替 **%s**。字符串的 join() 函數,可以將一個 list 拼接成一個字符串。`這里寫代碼片`我們還可以用一個函數來替換字符串的格式化代碼,這樣邏輯更清晰。 def generate_tr(name, score):return '<tr><td>%s</td><td>%s</td></tr>' % (name, score) tds = [generate_tr(name, score) for name, score in d.iteritems()] 在此基礎上我們可以結合 html 代碼的特點,添加相應的格式控制,如下實例: d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } def generate_tr(name, score):if score < 60:return '<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)return '<tr><td>%s</td><td>%s</td></tr>' % (name, score) tds = [generate_tr(name, score) for name, score in d.iteritems()] print '<table border="1">' print '<tr><th>Name</th><th>Score</th><tr>' print '\n'.join(tds) print '</table>'

    3.帶條件的復雜生成類表:如下示例:

    def toUppers(L):return [x.upper() for x in L if isinstance(x, str)] print toUppers(['Hello', 'world', 101]) 添加 if 語句即可,并且 isinstance(x,str) 是用來判斷 x 是否是字符串。

    4.多層表達式
    for 循環(huán)是可以嵌套的,所以如下示例:
    print [100 * n1 + 10 * n2 + n3 for n1 in range(1, 10) for n2 in range(10) for n3 in range(10) if n1==n3]
    輸出的就是1000以內,個位數和百位數字相等的三位數。

    總結

    以上是生活随笔為你收集整理的python 慕课课程笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。