Python第二週之函式及其作用域

2022-08-18 06:06:12 字數 2628 閱讀 7094

定義:

我們可以把程式中相對獨立的功能模組抽取出來,這樣的好處是可以減少重複**的編寫,將來可以重複使用這些功能模組,python中的函式就是代表了這樣的功能模組。

命名:age_of_student(官方) 或 ageofstudent(大部分人的習慣用法,又稱駝峰命名法)

呼叫:import 模組 (as 別名)

函式名(引數)

注意:二元運算子之間放空格,引數裡賦值時,等號兩邊不加空格。例如:def f(x=2) 

#y = x !定義求階乘這個函式,將求階乘這個功能抽取出來,放到函式中。

def f(x):

"""求函式x的階乘

:param x: 任意正整數

:return

: x的階乘

""" y = 1

for z in range(1, x + 1

): y *=z

return y

if __name__ == '__main__':

m = int(input('m = '))

n = int(input('n = '))

# 當需要計算階乘的時候,不用再寫迴圈,而是直接呼叫已經定義好的函式就可以了。

print(f(m) // f(n) // f(m - n))

#

可變引數的函式

def add(*args): #

*args可變引數,個數不確定。

total =0

for value in

args:

total +=value

return total

#

遞迴函式

1.收斂條件 -讓遞迴在有限的次數內完成或者進行回溯

如果遞迴無法在有限的次數內收斂,就有可能導致recursionerror

2.遞迴公式

#1到100遞迴求和

defsum_(num):

if num == 1:

return 1

return sum_(num - 1) +num

if__name__ == '

__main__':

print(sum_(100))

#十級樓梯,走完十級台階有幾種走法。每次走1到3步。

defwalk(n):

if n <0:

return

0

elif n ==0:

return 1

return walk(n-1) + walk(n-2) + walk(n-3)

if__name__ == '

__main__':

print(walk(25))

#

生成器函式

deffib(n):

a, b = 0, 1

for _ in

range(n):

a, b = b, a +b

yield

af = fib(20)

print

(f)for val in fib(20):

print(val)

1.在函式外面,叫做全域性變數 global variable

2.減少全域性變數的使用,盡量使用區域性變數。迪公尺特法則:不要和陌生人說話,盡量讓模組之間不要發生聯絡。

3.python搜尋乙個變數的方式是從區域性作用域到巢狀作用域再到全域性作用域,最後到內建作用域。即 local > enclose>global>built-in(l e g b)

4.如果想改變搜尋範圍,可以使用global 和nonlocal關鍵字。

a = 100

deffoo():

#函式內的區域性變數,離開foo函式時無法訪問的。 local variable

global

a

#提公升許可權,變為全域性變數,可以直接修改,重新定義申明的變數。

a = 200

print

(a) b = '

good

'def

bar():

nonlocal b

#非區域性作用域。

b = '

hello

'print

(b)

print

(a) bar()

print

(b)foo()

print(a)

1.分為3大類,棧--stack,堆--heap,(資料段,唯讀資料段,**段)-靜態區

2.函式呼叫時,變數是放在記憶體小,執行快的棧上面的,物件是放在記憶體無窮大的堆上面的。

3.變數--物件的引用--放的是對像的位址。  物件--放在堆上面。

4.函式呼叫時,會經過儲存現場和恢復現場兩個操作。在進入函式呼叫前,要儲存當前的執行現場,函式的執行現場是儲存在棧上,執行--先進後出的儲存結構。

ctrl + q    當前位置檢視注釋,

ctrl + lb    返回寫注釋位置檢視注釋

shift + f6  重新命名

#  字串倒過來的做法:[-1::-1]

作業第二週PYTHON

使用 python 實現隨機生成 200 無重複啟用碼 或者優惠券 字串長度大於5以上.import random count 0 s1 set while true s abcdefghjkl1234567890 ys for i in range 6 ys random.choice s pri...

python學習第二週

如果建立的檔名與模組名一致,import會優先匯入建立的檔案,不會匯入模組函式,所以建立檔名的時候不要和模組函式名相同。for迴圈語句 應用場景 反覆執行程式,直到滿足條件。具體例子 驗證碼,防止暴力破解密碼,因為每次填錯密碼都是迴圈重新填。1 for語法 for 變數 in 集合 語句集合一般是 ...

python第二週學習總結

type 返回物件或變數的資料型別 abs 返回乙個數字的絕對值 max 返回一組資料中的最大值 min 返回一組資料中的最小值 len 檢視資料長度 序列 指的就是一組資料 列表 元組 集合 字串 random模組 random.randint a,b 隨機產生乙個包含a和b之間的數字 rando...