函式最重要的目的是方便我們重複使用相同的一段程式。
將一些操作隸屬於乙個函式,以後你想實現相同的操作的時候,只用呼叫函式名就可以,而不需要重複敲所有的語句。
首先,我們要定義乙個函式, 以說明這個函式的功能。
def這個函式的功能是求兩個數的平方和。square_sum(a,b):
c = a**2 + b**2
return c
首先,def,這個關鍵字通知python:我在定義乙個函式。square_sum是函式名。
括號中的a, b是函式的引數,是對函式的輸入。引數可以有多個,也可以完全沒有(但括號要保留)。
我們已經在迴圈和選擇中見過冒號和縮進來表示的隸屬關係。
c = a**2 + b**2
# 這一句是函式內部進行的運算
return c
# 返回c的值,也就是輸出的功能。python的函式允許不返回值,也就是不用return。
return可以返回多個值,以逗號分隔。相當於返回乙個tuple(定值表)。
return a,b,c
# 相當於 return (a,b,c)
在python中,當程式執行到return的時候,程式將停止執行函式內餘下的語句。return並不是必須的,當沒有return, 或者return後面沒有返回值時,函式將自動返回none。none是python中的乙個特別的資料型別,用來表示什麼都沒有,相當於c中的null。none多用於關鍵字引數傳遞的預設值。
定義過函式後,就可以在後面程式中使用這一函式
print square_sum(3,4)python通過位置,知道3對應的是函式定義中的第乙個引數a, 4對應第二個引數b,然後把引數傳遞給函式square_sum。
(python有豐富的引數傳遞方式,還有關鍵字傳遞、表傳遞、字典傳遞等,基礎教程將只涉及位置傳遞)
函式經過運算,返回值25, 這個25被print列印出來。
我們再看下面兩個例子
a = 1第乙個例子,我們將乙個整數變數傳遞給函式,函式對它進行操作,但原整數變數a不發生變化。defchange_integer(a):
a = a + 1
return
aprint
change_integer(a)
printa#
===(python中 "#" 後面跟的內容是注釋,不執行 )
b = [1,2,3]
defchange_list(b):
b[0] = b[0] + 1
return
bprint
change_list(b)
print b
第二個例子,我們將乙個表傳遞給函式,函式進行操作,原來的表b發生變化。
對於基本資料型別的變數,變數傳遞給函式後,函式會在記憶體中複製乙個新的變數,從而不影響原來的變數。(我們稱此為值傳遞)
但是對於表來說,表傳遞給函式的是乙個指標,指標指向序列在記憶體中的位置,在函式中對錶的操作將在原有記憶體中進行,從而影響原有變數。 (我們稱此為指標傳遞)
def函式的目的: 提高程式的重複可用性。function_name(a,b,c):
statement
return something # return不是必須的
return none
通過位置,傳遞引數。
基本資料型別的引數:值傳遞
表作為引數:指標傳遞
python 07(函式的使用)
8 19 2019 1 14 周一 匿名函式 res lambda x x 1 lambda是匿名函式的定義其中res接受的是位址。其中x表示的是輸入值。print res 10 匿名函式裡面是簡單的語句,不能加複雜的邏輯結構。把函式當成引數傳遞給另乙個函式,如果沒有返回值,則返回none 返回值也...
07函式的定義
函式 形式引數parameter 定義引數是括號內字 實際引數argument 輸入值 def myfx name 函式形式引數為name 當前為注釋內容 print name 內容 10 1.執行函式 myfx 測試 測試內容 測試內容 測試內容 測試內容 測試內容 測試內容 測試內容 測試內容 ...
python函式的定義與使用 Python函式
python中使用def關鍵字定義函式,語法如下 def func name param1,param2,func block 注意 必須使用def 定義函式。裡面傳遞的是函式的引數 形參。可以沒有引數,也可以是多個引數。後面必須有冒號。python中的函式可以沒有返回值,也可以有多個返回值,無需在...