# 函式
# (1 以def開頭,後接函式識別符號和圓括號()
# (2 所有傳入的引數和自變數都必須在圓括號中,可以在圓括號中定義引數
# (3 函式內容以冒號開始,並且要縮排
# (4 return 表示式 ,結束函式,選擇性返回乙個值給呼叫方,不帶表示式的return相當於返回none
# (5 函式的引數有必須引數、關鍵字引數、預設引數、可變引數、組合引數
# 1、必須引數。必須以正確的順序傳入引數,傳入的數量也必須一樣。
defpaerameone
(str):
print
('傳入的引數:%s'
%str
)paerameone(
'hello'
)# 當不傳入引數
# paerameone() 提示缺少引數:missing 1 required positional argument: 'str'
# 當傳入的引數大於定義函式的引數數量
# paerameone('1','2') 提示paerameone() takes 1 positional argument but 2 were given
# 2、關鍵字引數。函式呼叫關鍵字引數確定傳入的引數值。使用關鍵字引數允許呼叫函式時引數的順序與宣告式不一致。
defperson
(age,name)
:print
('age是%s,name是%s'
%(age,name)
)person(18,
'小明'
)# 使用必須引數,傳入正確的順序、數量
person(age=
20,name=
'小紅'
)# 3、預設引數。呼叫函式時,如果沒有傳遞引數,則使用預設引數。即在定義引數時,給引數乙個預設值,如果呼叫的函式沒有傳參,則使用預設的引數。
# 並且預設引數要放在非預設引數後面
defdefault
(age,name=
'靜靜'):
print
('age是%s,name是%s'
%(age,name)
)default(18)
# age是18,name是靜靜
default(age=19)
# age是19,name是靜靜
# 4、可變引數。如果需要乙個函式能夠處理的函式宣告時更多這些引數叫作可變引數。
# 加了*號的變數名會存放所有的未命名的變數引數。在函式內部,引數前的*號將所有值放在同乙個元組裡。當在呼叫時沒有傳指定引數,則就是乙個空元組。
# 可變引數宣告時不會命名。
defpersoninfo
(arg,
*personinfotuple)
:print
(arg)
for var in personinfotuple:
print
('可變長引數為%s'
% var)
personinfo(arg=
'小明'
)personinfo(
'小明'
,'20'
,'shenzhen'
)# 4、關鍵字引數。使用**處理關鍵字引數。
# **param表示把param接收以key:value鍵值對的關鍵字引數。
defpersoninfo2
(arg,
**personparam)
:for var1,var2 in personparam.items():
print
('關鍵字引數為%s%s'
%(var1,var2)
)personinfo2(
'小明'
,classcode=
'2',age=
18)
64 引數的幾種型別
函式呼叫時,實參預設按位置順序傳遞,需要個數和形參匹配。按位置傳遞的引數,稱為 位置引數 操作 測試位置引數 def f1 a,b,c print a,b,c f1 2,3 4 f1 2,3 報錯,位置引數不匹配執行結果 234 traceback most recent call last fil...
函式的引數型別
按照形參位置傳入的引數被稱為位置引數。如果使用位置引數的方式來傳入引數值,則必須嚴格按照定義函式時指定的順序來傳入引數值 如果根據引數名來傳入引數值,則無須遵守定義形參的順序,這種方式被稱為關鍵字 keyword 引數。def demo a,b,x hehe print a format a pri...
python基礎函式的幾種引數
呼叫函式時,預設引數的值如果沒有傳入,則取預設值。下例會列印預設的age,如果age沒有被傳入 def printinfo name,age 35 列印任何傳入的字串 print name s name print age d age 總結 有時可能需要乙個函式能處理比當初宣告時更多的引數,這些引數...