python簡明教程之函式

2022-04-07 12:57:06 字數 4071 閱讀 9575

函式

函式是指可重複使用的程式片段。它們允許你為某個**塊賦予名字,允許你通過這一特殊的名字在你的程式任何地方來執行**塊,並可重複任何次數,這就是所謂的呼叫(calling)函式。我們已經使用了很多內建的函式,例如 len 和 range。

案例(儲存為function1.py)

def say_hello():

# 該塊屬於這一函式

print(

'hello world')

# 函式結束

say_hello() # 呼叫函式

say_hello() # 再次呼叫函式

函式引數在定義函式時給定的名稱稱作「形參」(parameters),在呼叫函式時你所提供給函式的值稱作「實參」(arguments)。

案例(儲存為function_param.py):

def print_max(a, b):

if a >b:

print(a,

'is maximum')

elif a ==b:

print(a,

'is equal to

', b)

else

: print(b,

'is maximum')

# 直接傳遞字面值

print_max(

3, 4

)x = 5

y = 7

# 以引數的形式傳遞變數

print_max(x, y)

輸出:

$ python function_param.py4is

maximum

7is maximum

區域性變數

當你在乙個函式的定義中宣告變數時,它們不會以任何方式與身處函式之外但具有相同名稱的變數產生關係,也就是說,這些區域性變數只存在於函式這一區域性(local),這些被稱為變數的作用域。變數的作用域是它們被定義的塊,從定義它們的名字的定義點開始。

案例(儲存為 function_local.py):

x = 50

def func(x):

print(

'x is

', x)

x = 2

print(

'changed local x to

', x)

func(x)

print(

'x is still

', x)

輸出:

$ python function_local.py

x is

50changed local x to 2x

is still 50

global語句

如果你想要給乙個程式頂層的變數賦值,那麼你必須告訴python這一變數並非區域性的,而且全域性的(global)。

案例 (儲存為 function_global.py):

x = 50

def func():

global

x print(

'x is

', x)

x = 2

print(

'changed global x to

', x)

func()

print(

'value of x is

', x)

結果為:

$ python function_global.py

x is

50changed

global x to 2

value of x

is2

預設引數值

對於一些函式來說,你可能希望使一些引數可選並使用預設的值,以避免使用者不需為他們提供值得情況。預設引數值可以有效解決這一情況,你可以 通過在函式定義時附加乙個賦值運算子(=)來為引數指定預設引數值。

要注意,預設引數值應該是常數。更確切的說,預設引數值應該是不可變的。

案例(儲存為 function_default.py):

def say(message, times=1

): print(message *times)

say(

'hello')

say(

'world

', 5)

輸出:

$ python function_default.py

hello

worldworldworldworldworld

關鍵字引數

案例(儲存為function_keyword.py):

def func(a, b=5, c=10

): print(

'a is

', a, '

and b is

', b, '

and c is

', c)

func(

3, 7

)func(

25, c=24

)func(c=50, a=100)

輸出:

$ python function_keyword.py

a is

3 and b is

7 and c is

10a

is25 and b is

5 and c is

24a

is100 and b is

5 and c is

50

可變引數

有事你可能想定義的函式裡面能夠有任意數量的變數,也就是引數數量是可變的,這可以通過使用星號來實現(案例儲存為 function_varargs.py):

def total(a=5, *numbers, **phonebook):

print('a

', a)

#遍歷元組中的所有專案

for single_item in

numbers:

print(

'single_item

', single_item)

#遍歷字典中的所有專案

for first_part, second_part in

phonebook.items():

print(first_part,second_part)

print(total(

10,1,2,3,jack=1123,john=2231,inge=1560))

輸出:

$ python function_varargs.py

a 10

single_item

1single_item

2single_item

3inge

1560

john

2231

jack

1123

none

有點難理解,慢慢品呵呵

return語句

return語句可以用於從函式中返回,也就是中斷函式。我們也可以選擇在中斷函式時從函式中返回乙個值。

案例(儲存為 function_return.py):

def maximum(x, y):

if x >y:

return

x elif x ==y:

return

'the numbers are equal

'else

:

return

yprint(maximum(

2, 3))

輸出:

$ python function_return.py

3

要注意到如果return語句沒有搭配任何乙個值則代表著返回none。none在python中是乙個特殊的型別,代表著虛無。

Python 簡明教程

python 手冊 1.usr bin python 2.常量 數 2,3.2,1 2j 字串 單引號 雙引號是完全相同的,三引號指示多行字串。轉義字元用 自然字串 即不轉義 使用 r string content.n r unicode字串,u unicode string 表明這個檔案的格式是u...

python 簡明教程

版本 1.20 a byte of python 簡明 python 教程 本書依照 創作公用約定 署名 非派生作品 非商業用途 發布。概要 無論您剛接觸電腦還是乙個有經驗的程式設計師,本書都將有助您學習使用python語言。目錄表 前言本書的讀者 本書的由來 本書目前的狀況 官方 約定條款 歡迎給...

python程式設計最最簡明教程

我將按照以下幾個部分來說說我理解的python,很多地方我只說一下一些非常常用的功能,具體的細節,大家都是有文化的人,完全可以google或者直接查python的庫文件,我相信這些能比我說得更好也更詳細。2.使用 開啟控制台,輸入python,然後回車,看到下面的東西的話,恭喜你,python已經正...