python入門基礎總結筆記(2) 函式

2021-10-07 15:35:50 字數 3698 閱讀 7547

求絕對值的abs()函式

求最大最小值的max()和min()函式

將其他資料型別轉換為整數的int()函式

在python中,用def語句定義乙個函式,依次寫出函式名、括號、括號中的引數和冒號:

編寫乙個求絕對值的例子:

def

my_abs

(x):

if x >=0:

return x

else

:return

-x

其中注意:if…else 的**要規整,如上圖,不然可能出現報錯!

如果要在其他檔案中呼叫該函式,設my_abs()的函式定義儲存為abstest.py檔案用法如下:

from abstest import my_abs
含有數字計算的程式部分應該呼叫系統的math包:

import math
例子:請定義乙個函式quadratic(a, b, c),接收3個引數,返回一元二次方程 ax^2+bx+c=0,ax*2+bx+c=0 的兩個解。

計算平方根可以呼叫math.sqrt()函式:

import math

defquadratic

(a, b, c)

: delta = b*b-

4*a*c

if delta >=0:

x1 =

(-b + math.sqrt(delta))/

(2*a) x2 =

(-b - math.sqrt(delta))/

(2*a)return x1,x2

else

:return

"無實數解"

計算x^2的**:

def

power

(x):

return x * x

>>

>power(5)

25

若要計算x3,x4…x*n,可以採用如下**:

def

power

(x, n)

: s =

1while n >0:

n = n -

1 s = s * x

return s

由於我們經常計算x^2,此時,可以把第二個引數n的預設值設定為2:

def

power

(x, n=2)

: s =

1while n >0:

n = n -

1 s = s * x

return s

>>

> power(5,

2)25

定義預設引數要牢記一點:預設引數必須指向不變物件!

可變引數傳入的引數個數是可變的,可以是1個、2個到任意個,還可以是0個。可變引數在函式呼叫時自動組裝為乙個tuple:

def

calc

(numbers)

:sum=0

for n in numbers:

sum=

sum+ n * n

return

sum

呼叫的時候,需要先組裝出乙個list或tuple:

>>

> calc([1

,2,3

])14

def

calc

(*numbers)

:sum=0

for n in numbers:

sum=

sum+ n * n

return

sum

呼叫形式更簡單,括號即可,且可以傳入任意個引數,包括0個引數。

>>

> calc(1,

2)5>>

> calc(

)0

高階:計算兩個數的乘積,請稍加改造,變成可接收乙個或多個數並計算乘積:

def

product

(*l):if

len(l)!=0

:sum=1

for x in l:

sum=

sum* x

return

sumelse

:raise typeerror(

'引數不能為空'

)

注意:引數數量可變,故選可變引數,且引數要在乙個以上。

關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict。

def

person

(name, age,

**kw)

:print

('name:'

, name,

'age:'

, age,

'other:'

, kw)

函式person除了必選引數name和age外,還接受關鍵字引數kw,如下例:

>>

> person(

'michael',30

)name: michael age:

30 other:

>>

> person(

'bob',35

, city=

'beijing'

)name: bob age:

35 other:

>>

> person(

'adam',45

, gender=

'm', job=

'engineer'

)name: adam age:

45 other:

如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。

舉個例子,我們來計算階乘n! = 1 x 2 x 3 x … x n,用函式fact(n)表示

而 fact(n)可以表示為n x fact(n-1)

def

fact

(n):

if n==1:

return

1return n * fact(n -

1)

如果我們計算fact(5),可以根據函式定義看到計算過程如下:

===> fact(5)

===> 5 * fact(4)

===> 5 * (4 * fact(3))

===> 5 * (4 * (3 * fact(2)))

===> 5 * (4 * (3 * (2 * fact(1))))

===> 5 * (4 * (3 * (2 * 1)))

===> 5 * (4 * (3 * 2))

===> 5 * (4 * 6)

===> 5 * 24

===> 120

Python基礎入門 2

nput 輸入 接受乙個標準輸入資料,返回為 string 型別。s 1.什麼是識別符號 就是一堆字串 2.規則 a.只能有數字,字母,下劃線組成 b.不能以數字開始 c.python的關鍵字不能做標誌符 關鍵字 false none true and as assert async await b...

Python基礎入門2

編寫python程式的兩個地方 互動式環境 ide integrated development environment 整合開發環境 python3 d a.txt 先啟動python直譯器 python直譯器會將a.txt的內容讀入記憶體 python直譯器會解釋執行剛剛讀入記憶體的 識別pyt...

Python入門基礎 函式(2)

函式也是一種型別,我們自定義的函式就是函式物件,函式名儲存了函式物件的引用 位址 def test print 我是測試函式 print test 函式名是變數,指向了函式物件 pf test pf變數也指向了函式物件,所以也可以通過pf呼叫test函式 pf 裝逼利器 不再使用def 函式名 這種...