Python基礎刻意練習 函式與lambda表示式

2021-09-29 01:08:27 字數 3967 閱讀 5706

本系列定位為複習筆記,某些內容並未提及。

在此記錄一些典型疑問和我在學習中的問題或經常遺忘的細節,也會新增一些覺得有意思的部分(其實就是隨心所欲 )

內容主要使用**進行傳達

def

printme

(str):

print

(str

)printme(

"1")

printme(

"2")

temp = printme(

'hello'

)print

(temp)

====

====

====

====

=== restart: c:\users\雨田人尹\desktop\test.py ==

====

====

====

====

=我要呼叫使用者自定義函式!

再次呼叫同一函式

hello

none

#由於函式沒有設定return返回值,因此temp被賦予了none物件

(關鍵字引數,命名關鍵字引數)

可變引數是乙個元組

def

add(x, y=23,

*var)

:print

(x)print

(y)print

(var)

#warining 此處輸入引數的方式,預設引數一般放最後要好一點!!!!!!!!!

>>

> add(2)

223()

>>

> add(2,

3)23

()>>

> add(2,

3,5)

23(5

,)>>

> add(

2,y=3,

3,4)

syntaxerror: positional argument follows keyword argument

>>

> add(

2,y=3)

23()

global用於申明函式外的變數,為整個程式的全域性變數

nonlocal主要用於實現閉包內嵌函式,在函式中,使用遞迴時設定乙個函式內的區域性的全域性變數

num =

1def

fun1()

:global num # 需要使用 global 關鍵字宣告

print

(num)

# 1 num =

123print

(num)

# 123

fun1(

)print

(num)

# 123

def

add():

a=1def

add2()

:nonlocal a

a+=1return a

print

(add2())

====

====

====

====

=== restart: c:\users\雨田人尹\desktop\test.py ==

====

====

====

====

=>>

> add(

)2

如果在乙個內部函式裡對外層非全域性作用域的變數進行引用,那麼內部函式就被認為是閉包。

通過閉包可以訪問外層非全域性作用域的變數,這個作用域稱為 閉包作用域。

def

funx

(x):

deffuny

(y):

return x * y

return funy

i = funx(8)

print

(type

(i))

# print

(i(5))

# 40

遞迴可參考我力扣刷題的遞迴類題型

>>

>

list

(filter

(lambda x :

1if x%3==

0else0,

range(0

,101))

)[0,

3,6,

9,12,

15,18,

21,24,

27,30,

33,36,

39,42,

45,48,

51,54,

57,60,

63,66,

69,72,

75,78,

81,84,

87,90,

93,96,

99]>>

>

[x for x in

range(0

,101

)if x%3==

0][0

,3,6

,9,12

,15,18

,21,24

,27,30

,33,36

,39,42

,45,48

,51,54

,57,60

,63,66

,69,72

,75,78

,81,84

,87,90

,93,96

,99]>>

>

[x%3

for x in

range(0

,101

)if x%3==

0][0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0,0

,0]>>

>

list

(map

(lambda x:

[x**

2,x]

,range(11

)))[

[0,0

],[1

,1],

[4,2

],[9

,3],

[16,4

],[25

,5],

[36,6

],[49

,7],

[64,8

],[81

,9],

[100,10

]]>>

>

list

(zip([

1,3,

5,7,

9],[

2,4,

6,8,

10]))

[(1,

2),(

3,4)

,(5,

6),(

7,8)

,(9,

10)]>>

>

list

(map

(lambda x,y:

[x,y],[

123,

1234

,231

,123],

[123

,123

,342

,3456143,2

,25])

)[[123

,123],

[1234

,123],

[231

,342],

[123

,3456143]]

#map()後面可以接受多個序列作為引數

刻意練習 Python基礎 字典與集合

一 字典 建立字典 可使用花括號或者使用dict 函式來建立字典。字典中的key不允許重複。刪除key value對 使用del語句。in或not in 判斷字典是否包含指定的key。clear 方法 清空字典中所有的key value對,對字典執行clear 方法後,該字典會變成乙個空字典。get...

python基礎刻意練習 day10

python基礎刻意練習 day10 檔案系統 我們所知道常用的作業系統有windows,mac os,linx,unix等,這些作業系統底層對於檔案系統的訪問工作原理是不一樣的,因此可能就要針對不同的系統來考慮使用哪些檔案系統模組。這樣是很麻煩的,因為這就意味著當程式的執行環境一改變,就要相應的去...

Python基礎刻意練習 Day17 模組

day1 變數 運算子與資料型別 day2 條件與迴圈 day3 4 列表與元組 day5 字串與序列 day6 7 函式與lambda表示式 day8 字典與集合 day9 10 檔案與檔案系統 day11 異常處理 day12 else 與 with 語句 day13 14 類與物件 day15...