在python中,function是一組執行特定任務的相關語句。
函式有助於將我們的程式分解為更小的模組化塊。隨著我們的計畫越來越大,功能使其更加有條理和易於管理。
此外,它避免重複並使**可重用
def
function_name
(parameters)
:"""docstring"""
statement(s)
上面顯示的是乙個函式定義,它由以下元件組成。
關鍵字def標記函式頭的開始。
用於唯一標識它的函式名稱。函式命名遵循在python中編寫識別符號的相同規則。
引數(引數),我們通過它將值傳遞給函式。它們是可選的。
冒號(:)標記函式頭的結尾。
用於描述函式功能的可選文件字串(docstring)。
構成函式體的乙個或多個有效的python語句。語句必須具有相同的縮排級別(通常為4個空格)。
用於從函式返回值的可選return語句。
一旦我們定義了乙個函式,我們就可以從另乙個函式,程式甚至python提示符中呼叫它。要呼叫函式,我們只需使用適當的引數鍵入函式名稱
name=
'shadow'
defgetname
(a):
'''這是乙個獲取我的名字的函式'''
print
('my name is'
,a)getname(name)
函式頭之後的第乙個字串稱為docstring,是文件字串的縮寫。它用於簡要解釋函式的作用。
雖然可選,但文件是一種很好的程式設計習慣。除非你能記住你上週吃的晚餐,否則請記錄你的**。
在上面的示例中,我們在函式頭的正下方有乙個docstring。我們通常使用三引號,以便docstring可以擴充套件到多行。我們可以將此字串作為函式的__doc__屬性使用。
name=
'shadow'
defgetname
(a):
'''這是乙個獲取我的名字的函式'''
print
('my name is'
,a)getname(name)
print
(getname.__doc__)
name=
'shadow'
defgetname
(a):
'''這是乙個獲取我的名字的函式'''
print
('my name is'
,a)print
(getname(name)
)def
ifodd
(m):
if m%2==
0:return
'it is not odd'
else
:return
'it is odd'
print
(ifodd(10)
)
變數的範圍是程式中識別變數的部分。函式內定義的引數和變數在外部不可見。因此,它們具有區域性範圍。
變數的生命週期是變數在儲存器中退出的時間段。函式內部變數的生命週期與函式執行的時間一樣長。
一旦我們從函式返回它們就會被銷毀。因此,函式不記得先前呼叫的變數值。
下面是乙個示例,用於說明函式內部變數的範圍。
def
my_func()
: x =
10print
("value inside function:"
,x)x =
20my_func(
)print
("value outside function:"
,x)
情況一,不給引數會報錯:
def
my_func
(x):
print
("value inside function:"
,x)my_func(
)
情況二:給預設的引數
def
my_func
(x=11111):
print
("value inside function:"
,x)my_func(
)
結果:
情況三:有預設引數且給了引數
def
my_func
(x=11111):
print
("value inside function:"
,x)my_func(
2222
)
一旦我們有乙個預設引數,它右邊的所有引數也必須有預設值。
這意味著,非預設引數不能遵循預設引數。
)有時,我們事先並不知道將傳遞給函式的引數數量.python允許我們通過具有任意數量引數的函式呼叫來處理這種情況。
在函式定義中,我們在引數名稱前使用星號(*)來表示這種引數。這是乙個例子。
def
my_func
(*names)
:for name in names:
print
('hi'
,name)
my_func(
100)
my_func(
'aaa'
,'bbb'
,'vvv'
)
def
my_func
(names)
: empty=
for name in names:
if name not
in empty:
return empty
print
(my_func([1
,2,3
,4,2
,3,7
,8,9]))
Python學習筆記 6 函式
定義函式 def name pass 引數位置按照順序排列並傳遞。使用 收集位置引數 當 用在函式內部的時候,星號將一組可變數量的位置引數集合成引數值的元組。例如 def print aa aa print aa print aa 3,1,2,huawei out 45 3,1,2,huawei 注...
筆記 6 Python學習 函式
def 函式名 呼叫 函式名 乙個函式引數 def second name print name 我愛你!second 花花 花花我愛你!多個函式引數 def add num1,num2 result num1 num2 print result add 1,2 3函式的返回值return def ...
Python入門學習筆記6 函式
1 函式 2 引數3 1.必須引數 2.關鍵字引數 3.預設引數 4.形式引數 形參 4 round 操作變數,保留小數點幾位,且四捨五入 5 a 1.12386 6print round a,3 1.12478 9def functionname str 10print str 11return ...