零基礎(chǔ)學(xué)python—常用語句和類

2-1 正規(guī)地說一句話

  • python中包含哪些語句
    1 . 賦值語句
    2 . if語句,當(dāng)條件成立時運(yùn)行語句塊。經(jīng)常與else, elif(相當(dāng)于else if)配合使用。
    3 . for語句,遍列列表、字符串、字典、集合等迭代器,依次處理迭代器中的每個元素。
    4 . while語句,當(dāng)條件為真時,循環(huán)運(yùn)行語句塊。
    5 . try語句。與except, finally, else配合使用處理在程序運(yùn)行中出現(xiàn)的異常情況。
    6 . class語句。用于定義類型。
    7 . def語句。用于定義函數(shù)和類型的方法。
    8 . pass語句。表示此行為空,不運(yùn)行任何操作。
    9 . assert語句。用于程序調(diào)適階段時測試運(yùn)行條件是否滿足。
    10 . with語句。Python2.6以后定義的語法,在一個場景中運(yùn)行語句塊。比如,運(yùn)行語句塊前加鎖,然后在語句塊運(yùn)行退出后釋放鎖。
    11 . yield語句。在迭代器函數(shù)內(nèi)使用,用于返回一個元素。
    12 . raise語句。拋出一個異常。
    13 . import語句。導(dǎo)入一個模塊或包。常用寫法:from module import name, import module as name, from module import name as anothername
  • 序列賦值
    如果左邊的變量是序列,右邊的對象也是序列,兩者將一一對應(yīng)地進(jìn)行賦值

2-2 print能干的事情

  • eval

help(eval)
把字符串中符合python表達(dá)式的東西計算出來

  • print詳解
    1 . %d,只能輸出整數(shù),int類型
    2 . %4d,要求該整數(shù)占有四個位置,若整數(shù)位數(shù)不夠,在前面增加空格
    3 . %f,輸出浮點(diǎn)數(shù)
    4 . %.2f,按要求輸出小數(shù)位數(shù),如果要求的小數(shù)位數(shù)過多,后面就用0補(bǔ)全
  • print3,請用print(),要加個括號
  • print有一個特點(diǎn),就是輸出的時候,每行后面都自動加上一個換行符號\n,
    加逗號可取消換行

2-3 從格式化表達(dá)式到方法

  • %表達(dá)的一種輸出格式化表達(dá)式
    str.format,表達(dá)一種格式化方法
  • 基本的操作
    所謂格式化方法,就是可以先建立一個輸出字符串的模板,然后用format來填充模板的內(nèi)容

2-6 難以想象的for

  • for的基本操作
    1 . for是用來循環(huán)的,是從某個對象那里依次將元素讀取出來
    2 . for支持str、list、set、tuple、dict、文件、列表解析式

2-7關(guān)于循環(huán)的小伎倆

  • range
  • zip
    1 . zip()的作用就是把list1和list2兩個對象中的對應(yīng)元素放到一個元組(a,b)中
    2 . zip(*),zip的反向操作,解壓縮
    3 . enumerate

2-8 讓人歡喜讓人憂的迭代

1 . 循環(huán)(loop),指的是在滿足條件的情況下,重復(fù)執(zhí)行同一段代碼。比如,while語句。
2 . 迭代(iterate),指的是按照某種順序逐個訪問列表中的每一項。比如,for語句。
3 . 遞歸(recursion),指的是一個函數(shù)不斷調(diào)用自身的行為。比如,以編程方式輸出著名的斐波納契數(shù)列。
4 . 遍歷(traversal),指的是按照一定的規(guī)則訪問樹形結(jié)構(gòu)中的每個節(jié)點(diǎn),而且每個節(jié)點(diǎn)都只訪問一次。

  • 逐個訪問
    可迭代對象:常常將那些能夠用for來一個一個讀取元素的對象,就稱之為可迭代的對象。那么for也就被稱之為迭代工具。所謂迭代工具,就是能夠按照一定順序掃描迭代對象的每個元素(按照從左到右的順序)

2-9 大話題小函數(shù)(1)

  • lambda

1 . 在lambda后面直接跟變量
2 . 變量后面是冒號
3 . 冒號后面是表達(dá)式,表達(dá)式計算結(jié)果就是本函數(shù)的返回值

  • map
    基本樣式是:map(func, seq),func是一個函數(shù),seq是一個序列對象。
    在執(zhí)行的時候,序列對象中的每個元素,按照從左到右的順序,依次被取出來,并塞入到func那個函數(shù)里面,并將func的返回值依次存到一個list中

2-10 大話題小函數(shù)(2)

  • reduce
    map是上下運(yùn)算,reduce是橫著逐個元素進(jìn)行運(yùn)算,并產(chǎn)生單個值
  • filter

2-11 Python文檔

  • 查看python文檔

1 .
dir(list)
help(list._____mul_)
2 .
還有一個文檔:doc,help調(diào)用的其實(shí)就是這個函數(shù)里面的內(nèi)容
print(list._____mul_._____doc_)

  • 給自己的程序加上文檔
    在你所編寫的程序中用三個雙引號或者單引號成對地出現(xiàn),中間寫上有關(guān)文檔內(nèi)容。

2-12 重回函數(shù)

  • 函數(shù)的基本結(jié)構(gòu)
    參宿的意義完全取決于對象的類型。在python中,將這種依賴關(guān)系,稱之為多態(tài)
    python中為對象編寫接口,而不是為數(shù)據(jù)類型。
  • 注意事項
    空白行在交互模式提示符下很重要。模塊文件中符合語句內(nèi)的空白行常被忽視。但是,當(dāng)你在交互模式提示符下輸入代碼時,空白行則是會結(jié)束語句。

2-13 不確定參數(shù)的數(shù)量

  • *arg
    如果輸入的參數(shù)過多,其它參數(shù)全部通過*arg,以元組的形式傳給了參數(shù)(變量)arg。請看官注意,我這里用了一個模糊的詞語:參數(shù)(變量),這樣的表述意思是,在傳入數(shù)據(jù)前,arg在函數(shù)頭部是參數(shù),當(dāng)在函數(shù)語句中,又用到了它,就是變量

2-16 類的基本認(rèn)識

  • 面向?qū)ο?br> 對象指的是類的實(shí)例

2-17 編寫類之一創(chuàng)建實(shí)例

  • 創(chuàng)建類
    類的名稱一般用大寫字母開頭,這是慣例
class Person:
    def __init__(self, name, lang, website):
        self.name = name
        self.lang = lang
        self.website = website

1 . 首先呈現(xiàn)出來的是一個名為:_init()
的函數(shù),注意,這個函數(shù)是以兩個下劃線開始,然后是init,最后以兩個下劃線結(jié)束。
2 . 類就是一種對象類型
3 . 在構(gòu)建Person類的時候,首先要做的就是對這種類型進(jìn)行初始化,也就是要說明這種類型的基本結(jié)構(gòu),一旦這個類型的對象被調(diào)用了,第一件事情就是要運(yùn)行這個類型的基本結(jié)構(gòu),也就是類Person的基本結(jié)構(gòu)
4 . 在類中,基本結(jié)構(gòu)是寫在_init
()
這個函數(shù)里面。故這個函數(shù)稱為構(gòu)造函數(shù),擔(dān)負(fù)著對類進(jìn)行初始化的任務(wù)
5 . 當(dāng)類Person實(shí)例化后立刻運(yùn)行_init_()函數(shù)

  • 類和實(shí)例

  • self的作用
    1 . 在類內(nèi)部,我們會寫很多不同功能的函數(shù),這些函數(shù)在類里面有另外一個名稱,曰:方法
    2 . 通過類的構(gòu)造函數(shù)中的參數(shù)傳入的這些數(shù)據(jù)也想在各個方法中被使用,就需要在類中長久保存并能隨時調(diào)用這些數(shù)據(jù)。為了解決這個問題,在類中,所有傳入的數(shù)據(jù)都賦給一個變量,通常這個變量的名字是self
    3 . 在構(gòu)造函數(shù)中的第一個參數(shù)self,就是起到了這個作用——接收實(shí)例化過程中傳入的所有數(shù)據(jù),這些數(shù)據(jù)是通過構(gòu)造函數(shù)后面的參數(shù)導(dǎo)入的。顯然,self應(yīng)該就是一個實(shí)例(準(zhǔn)確說法是應(yīng)用實(shí)例),因為它所對應(yīng)的就是具體數(shù)據(jù)

    類的實(shí)例info對應(yīng)著self,info通過self導(dǎo)入實(shí)例屬性的所有數(shù)據(jù)
    self.name中的name和構(gòu)造函數(shù)的參數(shù)name沒有任何關(guān)系,它們兩個一樣,只不過是一種起巧合(經(jīng)常巧合),或者說是寫代碼的人懶惰,不想另外取名字而已,無他

2-18 編寫類之二方法

  • 編寫和操作方法
    編寫方法的過程和編寫一個函數(shù)的過程一樣,需要注意的就是要在參數(shù)列表中第一個寫上self,即使沒有其它的參數(shù)

2-20 編寫類之四再論繼承

2-21 命名空間

  • 所謂的命名空間,就是這些命名(名稱)的集合,它們分別與相應(yīng)的對象有對應(yīng)關(guān)系
  • 命名空間是從所定義的命名到對象的映射集合
  • 程序在查詢上述三種命名空間的時候,就按照從里到外的順序,即:Local Namespaces --> Global Namesspaces --> Built-in Namesspaces

2-22 類的細(xì)節(jié)

  • 綁定和無綁定方法
    無綁定類方法對象:無self
    綁定實(shí)例方法對象:有self
  • 調(diào)用綁定實(shí)例方法對象
  • 調(diào)用無綁定類方法對象
    不通過實(shí)例,而是用類進(jìn)行點(diǎn)號運(yùn)算來獲得方法函數(shù)(ClassName.method_function)
    調(diào)用的時候必須傳入實(shí)例做為第一參數(shù)

2-23 Import 模塊

  • 認(rèn)識模塊

import random
help(random) #在終端運(yùn)行

https://docs.python.org/2/library/

2-24 模塊的加載

  • import的工作流程
    1 . 搜索。就是python要能夠找到import的模塊
    2 . 編譯。找到模塊文件之后,將其編譯成字節(jié)碼,就是那個.pyc文件里面的。注意,不是什么時候都編譯的,只有第一次運(yùn)行時候才編譯
    3 . 運(yùn)行

2-25 私有和專有

  • 私有函數(shù)
    以“__”雙劃線開頭的,將這類命名的函數(shù)/方法稱之為“私有函數(shù)”
    1 . 私有函數(shù)不可以從它們的模塊外面被調(diào)用
    2 . 私有類方法不能夠從它們的類外面被調(diào)用
    3 . 私有屬性不能夠從它們的類外面被訪問
  • 專有方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容