函式由以下幾個部分組成
def 函式名稱(引數):
在縮排塊裡面編寫函式體,用return返回值
函式一旦執行到return是就會結束這個函式
型別屬於物件,變數是沒有型別的
如果沒有return語句在函式執行完畢後會返回結果為none
defp(
str)
:print
(str
,end=
' ')
print
('a god boy')x=
'hi'
p(x)
>>
>hi
a god boy
預設引數,在定義引數時如果有定義好的引數,那麼在呼叫引數時這些被設定好的引數就會被當成預設值
ps:預設引數務必指向不變物件!
defp(
str=
'emmmm'):
print
(str
,end=
' ')
print
('a god boy')p(
)>>
>emmmm a god boy
如果無法確認將會輸入具體多個引數,可以使用*
加在引數前面表示,在被呼叫時這些被輸入的引數會自動組裝成乙個元組
當你打算輸入乙個列表或者元組時,在呼叫輸入引數時在列表/元組的名稱前加乙個*
就可以數例輸入引數
deff(
*n):
for p in n:
print
(p,end=
' ')
f(10,2
,3)>>
>102
3
如果你寫了乙個函式def1
並儲存在了abstest.py
檔案,在該檔案目錄下啟動直譯器
那麼你可以通過
form abstest inport ads1
來匯入函式
關鍵字引數和函式呼叫關係緊密,函式呼叫使用關鍵字引數來確定傳入的引數值。
defp(
str)
:print
(str
,end=
' ')
print
('a god boy')x=
'hi'
p(x)
print
(str
)>>
>hi a god boy
<
class
'str'
>
使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致,因為 python 直譯器能夠用引數名匹配引數值。
def
p(str1,str2)
:print
(str1,end=
' ')
print
('a god boy, and'
,str2)
x='hi'
y='my friend'
p(str2=y,str1=x)
>>hi a god boy,
and my friend
命名引數,可以不按順序直接對引數賦值。
def
p(str1,str2)
:print
(str1,end=
' ')
print
('a god boy, and'
,str2)
p(str2=
'hi'
,str1=
'my friend'
)>>hi a god boy,
and my friend
變數在函式中是有作用範圍的,分為區域性變數和全域性變數
訪問許可權決定於這個變數在**賦值。
定義在函式內部的變數擁有區域性作用域,該變數稱為區域性變數。
定義在函式外部的變數擁有全域性作用域,該變數稱為全域性變數。
區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。
如果想在函式內部修改外部變數,可以用global
和nonlocal
x=
'hi'
defp()
:global x
print
(x,end=
' ')
x='a god boy'
print
(x)p(
)>>
>hi a god boy
lambda函式,即匿名函式。即,不再使用def語句定義的函式。
而且,lambda函式實際上是乙個表示式,函式體比def簡單。
lambda 函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數。
lambda 函式沒有所謂的函式名 (function_header),這也是它為什麼叫匿名函式。
sumary=
lambda a,b: a+b
print
(sumary(25,
55))>>
>
80
Python學習5 函式與Lambda表示式
python內建了很多函式可以直接用於呼叫 abs可以輸出絕對值 a abs 100.3 print a 100.3max可以接收數個引數並返回其中最大值 t1 1 54,64 5,64 56 print max t1 print min t1 64 1內建函式可以轉換資料型別 print int ...
lambda函式,匿名函式
簡單的來說lambda是匿名函式的表示式。匿名函式是什麼,匿名函式通常來說是你需要定義函式,但是又不想費神的去命名乙個函式的場合下使用的。舉乙個例子來說 將乙個list的裡面的每個元素都平方 map lambda x x x,y for y in range 10 過 這個方法要好過 def sw ...
python Day5 函式和lambda表示式
1.函式的定義 def 函式名 參數列 函式體return 表示式 不帶表示式的return相當於返回none 例項 帶變數 輸出如下 welcome runoob width 4 height 5 area 20 引數傳遞 變數沒有型別,只是相當於乙個指標。可更改 mutable 與不可更改 im...