Python學習之路 Day6

2021-10-05 02:56:54 字數 3733 閱讀 4620

python**在執行過程中,遵循下面的基本原則:

1)普通語句,直接執行;

2)碰到函式,將函式體載入記憶體,並不直接執行

3)碰到類,執行類內部的普通語句,但是類的方法只載入,不執行

4)碰到if、for等控制語句,按相應控制流程執行

5)碰到@,break,continue等,按規定語法執行

6)碰到函式、方法呼叫等,轉而執行函式內部**,執行完畢繼續執行原有順序 **

其實順序執行,簡單來說就是**按照從上到下的順序來執行

main函式,程式入口

條件判斷是通過一條或多條判斷語句的執行結果(true或者false)來決定執行的代 碼塊。

在python語法中,使用if、elif和else三個關鍵字來進行條件判斷。

1)每個條件後面要使用冒號(:)作為判斷行的結尾,表示接下來是滿足條件(結 果為true)後要執行的語句塊。

2)除了if分支必須有,elif和else分支都可以根據情況省略。

3)使用縮進來劃分語句塊,相同縮排數的語句在一起組成乙個語句塊。

4)順序判斷每乙個分支,任何乙個分支首先被命中並執行,則其後面的所有分支 被忽略,直接跳過!

5)在python中沒有switch – case語句。

if/else語句可以巢狀,也就是把 if…elif…else 結構放在另外乙個 if…elif…else 結構中。

while迴圈還可以增加乙個else從句。當while迴圈正常執行完畢,會執行else語句。 注意else與while平級的縮排方式!

但如果是被break等機制強制提前終止的迴圈,不會執行else語句。

break強制結束迴圈,不執行else,不能寫在迴圈體之外

小心死迴圈

雖然與while一樣都是迴圈的關鍵字,但for迴圈通常用來遍歷可迭代的物件,如乙個 列表或者乙個字典。

ch_num = [『零』,『壹』,『貳』,『叄』,『肆』,『伍』,『陸』,『柒』,『捌』,『玖』] ch = [『園』,『拾』,『佰』,『仟』,『萬』]

for迴圈遍歷資料之前,可迭代的物件會自動呼叫_iter_()方法,將可迭代的物件變會迭代器,然後呼叫迭代器的_next_()取值

與break不同,continue語句用於跳過當前迴圈的剩餘部分**,直接開始下一輪迴圈。它不 會退出和終止迴圈,只是提前結束當前輪次的迴圈。同樣的,continue語句只能用在迴圈內。

九九乘法表
在python中,函式必須先定義後呼叫

呼叫函式時根據函式定義的引數位置來傳遞引數

函式呼叫,通過「鍵=值」形式加以指定。可以讓函式更加清晰,容易使用,同時也清除了引數的順序需求

關鍵字引數之間不分先後順序,但是位置引數必須寫在關鍵字引數的前面

也叫預設引數,用於定義函式,為函式提供預設值,呼叫函式時可不傳該預設引數的值(注意:所有位置引數必須出現在預設引數前,包括函式定義和呼叫)

不定長引數也叫可變引數,用於不確定呼叫的時候會傳遞多少個引數(不傳參也可以)的場景。此時用包裹(packing)位置引數,或者包裹關鍵字引數,來進行引數傳遞,會顯得非常方便

可變長度引數,可傳可不傳,但如果要傳就有制定的格式返回

*args 元組,包裹位置引數傳遞

**kwargs 字典,包裹關鍵字傳遞

返回值類似於函式執行結果

函式的返回值遇到return,會返回到函式呼叫的地方,return後面的**就不再執行了

當熱return返回多個值時,用逗號隔開,並且預設為元組;如果返回值格式寫成列表,字典,返回就是列表字典

help函式可檢視內建函式的說明文件

help(len),執行結果為len函式的說明文件

自定義函式:

def 函式名(引數)

:"""說明文件的位置"""

**

再用help函式檢視自定義函式時,可調出自定義說明文件

def

sum_num1

(a,b)

:"""

求和函式sum_num1

:param a:引數1

:param b:引數2

:return:返回值

"""return a + b

條件判斷以及迴圈,都是沒有作用域說法的

全域性變數寫在函式外面,區域性變數定義在函式內部,也只能作用於函式內部

當區域性變數在該函式體內沒有被定義的時候,只能去全域性作用域去找

當用內部變數用global去定義為全域性變數時,會重新賦值(前函式修改全域性變數後,會影響後函式)

count =

10def

test3()

:global count

print

(count)

count =

5print

(count)

#執行結果為5

test3(

)

函式作用域優先順序

區域性》父級》全域性》系統模組

def

test()

:print(5

)def

test2()

:print(3

):test(

)print(4

)def

test3()

:print(1

) test2(

)print(2

)test3(

)#輸出結果 1 3 5 4 2

列印完會回到呼叫處

呼叫自身函式,需要自設結束條件,不然相當於死迴圈,效率很低

能用遞迴函式做的,迴圈都可以做

使用lambda關鍵字來建立匿名函式(可以省去命名麻煩,少寫不少**)

def

f(x)

:return x*x

print

(f(6))

# 36

f =lambda x:x*x

print

(f(5))

# 25

deffx

(i,j)

:return

lambda

:i*j

f = fx(6,

7)print

(f()

)# 42

infos =[,

,]infos.sort(key =

lambda x:x[

'age'])

# 按照name值排序

print

(infors)

filter函式用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表

reduce函式

def

return_num()

:return

100,

200num1,num2 = return_num(

)print

(num1)

print

(num2)

列印結果

100200

dict1 =

a,b = dict1

#對字典進行拆包,取出來的是字典的key

print

(a)#name

print

(b)#age

print

(dict1[a]

)#tom

print

(dixt1[b]

)#18

C 學習之路 day6

day6知識點 1.在運算子過載時盡量遵循原有預設的規則,如以下 int a b c a b c 是錯誤的 而在運算子過載中 complex complex operator complex another complex c1 1,2 c2 2,3 c1 c2 c 是正確的,但不遵循預設語法規則 ...

Linux學習之路 day 6

一 時間日期類指令 1.find 從指定目錄向下遞迴地遍歷其各個子目錄,將滿足條件的檔案或目錄顯示在終端。語法 find 搜尋範圍 選項 2.locate 利用事先建立的locate資料庫 包含所有檔名稱及路徑 實現快速定位給定的檔案。無需遍歷整個檔案系統,查詢速度快,但需要定期更新locate時刻...

Python學習日記day6

字串型別及操作 知識點1 使用 m n k 根據步長對字串切片 m缺失表示至開頭,n缺失表示至結尾。k為步長,擷取的字串位置為m到n 1 知識點2 轉義符號 轉義符號後的字元為原始字元 知識點3 字串操作符 x y 連線兩個字串x和y n x 或 x n 複製n次字串x x in s 如果x是s的子...