求絕對值的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 函式名 這種...