變數與遞迴函式(第五天)

2022-04-08 21:57:16 字數 1260 閱讀 1953

2019-01-09 

經過了十天左右的休息,重新開始學習玩蛇

當區域性變數與全域性變數同名時,在定義區域性變數的子程式內,區域性變數起作用,在其他地方全域性變數起作用。

global可以

在函式中獲取全域性變數,變數本質上就是全域性變數,可讀取可賦值;如果函式的內容無global關鍵字,優先讀取全域性變數,只能讀取全域性變數,無法對全域性變數重新賦值,可是對於可變型別,可以對內部元素進行操作

name =["

wcb","

lyn"

]def

home():

"baby")

print

(name)

home()

print

(name)

結果為:['

wcb', '

lyn', '

baby']

['wcb', '

lyn', '

baby

']

name ="

wcb"

defhome():

name = "

wcb"

defhomehome():

nonlocal name

#nonlocal,指定上一級變數

name = "

lyn"

homehome()

print

(name)

print

(name)

home()

print

(name)

結果為:

wcblyn

wcb

1.必須有乙個明確的結束條件

2.每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少

3.遞迴效率不高,遞迴層次過多會導致棧溢位

3.匿名函式:

lambda 形參:處理邏輯

函式名 = lambda 形參:處理邏輯

函式名()

func = lambda x:x+1

print(func(10))

func1 = lambda x,y,z:(x+1,y+1,z+1)

print(func1(1,2,3))

func = lambda x,y,z:x+1,y+1,z+1 #

需要自己加括號

print(func(1,2,3))

2019-01-10 16:38:35

Python初學第五天 函式之遞迴函式

遞迴函式就是在函式內部呼叫自身的函式,如階乘 n 用 fact n 表示 def fact n if n 1 return 1 return n fact n 1 遞迴函式的定義簡單,邏輯清晰,理論上所有遞迴函式都可以改寫為迴圈的方式,但是迴圈的邏輯不如遞迴函式清晰。使用遞迴函式時,需要防止棧溢位,...

國慶第五天

直接在寢室待了乙個上午 一 matlab 試了一下昨天安裝的matlab2010b發現檔案都打不開,報這個錯 undefined function or method uiopen for input arguments of type char 二 c 1.找到了個之前 裡的乙個問題 把本週開頭和...

集訓第五天

今天學習了乙個快速指數冪取餘的演算法。就拿一道題來說明 description 上初中的時候我們就學會了冪乘運算,可是我們卻不知道對於高階的冪乘,出結果的方法比較慢,那麼你有什麼更好的方法嗎?input 第1行,乙個整數n 1 n 1000 表示要計算的資料組數 第2 n 1行,每行兩個整數,第1個...