Pythony元組、字典以及函數

元組:

  1. 元組與字符串類似,下標索引從0開始,可以進行截取,組合等。
  2. 訪問元組:元組可以使用下標索引來訪問元組中的值。
  3. 修改元組:元組中的元素值是不允許修改的,但我們可以對元組進行連接組合:tup3 = tup1 + tup2;
  4. tuple1=tuple(list) :    列表轉換爲元組。
  5. 刪除元組:元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組。
  6. 元組運算符、函數都與列表相同。

字典:

  1. 字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中。
  2. 鍵必須是唯一的,但值則不必。
  3. 字典內置函數:
    1. len(dict)   :計算字典元素個數,即鍵的總數。
    2. str(dict)    :輸出字典,以可打印的字符串表示。
    3. type(variable)   :返回輸入的變量類型,如果變量是字典就返回字典類型。

字典內置方法:

  • radiansdict.copy():返回一個字典的淺複製
  • radiansdict.clear():刪除字典內所有元素
  •  radiansdict.fromkeys():創建一個新字典,以序列seq中元素做字典的鍵,val爲字典所有鍵對應的初始值
  • radiansdict.get(key, default=None):返回指定鍵的值,如果值不在字典中返回default值
  • key in dict:如果鍵在字典dict裏返回true,否則返回false
  • radiansdict.items():以列表返回可遍歷的(鍵, 值) 元組數組
  • radiansdict.keys():以列表返回一個字典所有的鍵
  • radiansdict.setdefault(key, default=None):和get()類似, 但如果鍵不存在於字典中,將會添加鍵並將值設爲default
  • radiansdict.update(dict2):把字典dict2的鍵/值對更新到dict裏
  • radiansdict.values():以列表返回字典中的所有值
  • pop(key[,default]):刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值。key值必須給出。 否則,返回default值。
  • popitem():隨機返回並刪除字典中的一對鍵和值(一般刪除末尾對)

函數:

    函數簡單規則:
            函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號 ()。
            任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用於定義參數。
            函數的第一行語句可以選擇性地使用文檔字符串—用於存放函數說明。
            函數內容以冒號起始,並且縮進。
    return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。
    語法:def 函數名(參數列表):   函數體
    參數傳遞:在 python 中,類型屬於對象,變量是沒有類型的
    可更改(mutable)與不可更改(immutable)對象:
             不可變類型:變量賦值 a=5 後再賦值 a=10,這裏實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。
 
            可變類型:變量賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。
 
    python 函數的參數傳遞:
 
            不可變類型:類似 c++ 的值傳遞,如 整數、字符串、元組。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的對象,不會影響 a 本身。
            可變類型:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響
 
    python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。
    python 傳不可變對象實例:
            實例中有 int 對象 2,指向它的變量是 b,在傳遞給 ChangeInt 函數時,按傳值的方式複製了變量 b,a 和 b 都指向了同一個 Int 對象,在 a=10 時,則新生成一個 int 值對象 10,並讓 a 指向它
            傳可變對象實例:可變對象在函數裏修改了參數,那麼在調用這個函數的函數裏,原始的參數也被改變了。
            參數(以下是調用函數時可使用的正式參數類型):
                    必需參數
                    關鍵字參數
                    默認參數
                    不定長參數
            必需參數:必需參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。調用printme()函數,你必須傳入一個參數,不然會出現語法錯誤
        關鍵字參數:
                    關鍵字參數和函數調用關係緊密,函數調用使用關鍵字參數來確定傳入的參數值。
 
        使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因爲 Python 解釋器能夠用參數名匹配參數值。
        默認參數:調用函數時,如果沒有傳遞參數,則會使用默認參數。
        不定長參數:你可能需要一個函數能處理比當初聲明時更多的參數。這些參數叫做不定長參數,和上述2種參數不同,聲明時不會命名。
        匿名函數:
                python 使用 lambda 來創建匿名函數。
                所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數。
                lambda 只是一個表達式,函數體比 def 簡單很多。
                lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
                lambda 函數擁有自己的命名空間,且不能訪問自己參數列表之外或全局命名空間裏的參數。

                雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增加運行效率。


語法:lambda [arg1 [,arg2,.....argn]]:expression
return語句:return [表達式] 語句用於退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。
變量作用域:
        Python 中,程序的變量並不是在哪個位置都可以訪問的,訪問權限決定於這個變量是在哪裏賦值的。


       變量的作用域決定了在哪一部分程序可以訪問哪個特定的變量名稱。Python的作用域一共有4種,分別是:
            L (Local) 局部作用域
            E (Enclosing) 閉包函數外的函數中
            G (Global) 全局作用域
            B (Built-in) 內建作用域
       以 L –> E –> G –>B 的規則查找,即:在局部找不到,便會去局部外的局部找(例如閉包),再找不到就會去全局找,再者去內建中找。
       全局變量和局部變量:
                定義在函數內部的變量擁有一個局部作用域,定義在函數外的擁有全局作用域。
                局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序範圍內訪問。調用函數時,所有在函數內聲明的變量名稱都將被加入到作用域中。
       global 和 nonlocal關鍵字:
                當內部作用域想修改外部作用域的變量時,就要用到global和nonlocal關鍵字了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章