python二級筆記 函式 打卡day 6

2021-10-03 23:56:52 字數 3346 閱讀 9273

如果需要返回值,使用保留字return和返回值列表,函式可以沒有return語句,函式體結束後,會將控制權返回給呼叫者。

函式不能直接執行,必須呼叫

def《函式名》(《非可選引數列表》,《可選引數》,=《預設值》)

.#n的階乘,這裡是4的階乘

def

fac(n)

: s=

1for i in

range(1

,n+1):

s*=i

return s

print

(fac(4)

)

輸出結果為:

24
#return可以返回多個值

>>

> a,b=3,

4>>

> a

3>>

> b

4

在函式中這種賦值同樣也存在

python的區域性變數只在函式內部起作用,出了函式就不起作用了

def

discounts

(price,rate)

: final_price = price * rate

return final_price

old_price =

float

(input

("請輸入原價:"))

rate =

float

(input

("請輸入折扣率:"))

new_price =discounts(old_price,rate)

print

("打折後的**是:"

, new_price)

輸出結果為:

請輸入原價:

100請輸入折扣率:0.8

打折後的**是: 80.0

如果我們想輸出區域性變數final_price,我們試一下

def

discounts

(price,rate)

: final_price = price * rate

return final_price

old_price =

float

(input

("請輸入原價:"))

rate =

float

(input

("請輸入折扣率:"))

new_price =discounts(old_price,rate)

print

("打折後的**是:"

, new_price)

print

(final_price)

輸出結果為:

請輸入原價:

300請輸入折扣率:0.8

打折後的**是: 240.0

nameerror: name 'final_price'

isnot defined

顯示報錯說final_price 並沒有被定義,像final_price,price,rate這些都是區域性變數,一但出了函式就不發揮作用了

全域性變數指在函式之外定義的變數,在 程式執行全過程有效,全域性變數在函式內部使用時,必須提前使用保留字global宣告,語法如下:

global

全域性變

n=

2#n是全域性變數

defmultiply

(x,y=10)

:global n

return x*y*n #使用全域性變數n

s = multiply(99,

2)print

(s)

輸出結果為:

==

====

====

====

====

====

== restart: c:

/python3.8/

3.192

.py ==

====

====

====

====

====

==396

當在函式內部,全域性變數和區域性變數定義相同時,沒有使用保留字global宣告也是區域性變數.函式內部區域性變數優先,函式外部只能使用全域性變數。

n=

2#是全域性變數

defmultiply

(x,y=10)

: n =x*y

return n #此處不是全域性變數

s = multiply(99,

2)print

(s)print

(n)#不改變外部全域性變數的值

輸出結果為:

198

2

函式的形成:函式的自我呼叫

python 函式的自我呼叫不是死迴圈,有上限,官方規定上限是1000

def

fun():

print

("你好,函式"

) fun(

)print

(fun(

))

輸出:

file "c:/python3.8/3.17.py"

, line 2

,in fun

print

("你好,函式"

)recursionerror: maximum recursion depth exceeded while pickli

樹形結構遍歷——從根節點找到子節點——把每乙個子節點當做根節點來找

我們作業系統的資料夾系統就是乙個樹形結構

使用遞迴來遍歷「愛學習的me」這個資料夾—拿到"愛學習的me"這個資料夾和資料夾的名字

.

#求n的階乘

deffac

(n):

#遞迴終止條件

if n ==0:

return

1#遞迴

res = fac(n-1)

*n return res

print

(fac(5)

)

輸出結果為:1

Python二級筆記(9)

1,演算法的空間複雜點是指演算法在執行過程中所需要的記憶體空間。2,結構化程式設計的思想包括 自頂向下 逐步求精 模組化,限制使用goto語句。3,字典中的 鍵 可以是整數或者字串,但也可以是函式,元組,類等任意不可變型別。4,字串方法replace用來替換字串中指定字元或子字串的所有重複出現,每次...

Python二級筆記(13)

1,機器數,不管是正數還是負數,其補碼的符號位取反即是偏移碼。2,迴圈佇列是佇列的一種順序儲存結構 3,break語句會跳出break所在的最內層迴圈 try中 的語句出錯時會 獲異常,執行except下的語句,迴圈也是一樣,出現異常,立即跳出迴圈 for或者while只有正常執行這兩個的迴圈語句結...

二級指標筆記

這兩天在leetcode上碰到乙個這樣的題目,remove nth node from end of list 這個題目學習到了兩種新的方法。1.路標標記法 2.二級指標應用 首先是關於路標標記,以後如果碰上這樣一種情況,要從乙個類似於鍊錶結構的不可逆的物件的結尾開始取相對位置,則可以用乙個先行路標...