Python參數分類:
- 必選參數
- 默認參數
- 可變參數
- 關鍵字參數
1.必選參數
程序示例:
def student(name,gender,grade,age=7,nation='China'):
print("name: ",name)
print("gender: ",gender)
print("grade: ",grade)
print("age: ",age)
print("nation: ",nation)
student('ding','man','six',8)
輸出結果:
C:\Users\dingz\AppData\Local\Programs\Python\Python35\python.exe D:/Code/Python/Start/TestDemo/函數參數.py
name: ding
gender: man
grade: six
age: 8
nation: China
上面示例中三個形參name,gender,grade,屬於必須按參數,調用函數時必須進行賦值,不然程序就無法運行。顧名思義,必選參數也就是必須進行賦值的參數。
2.默認參數
程序示例:
def student(name,gender,grade,age=7,nation='China'):
print("name: ",name)
print("gender: ",gender)
print("grade: ",grade)
print("age: ",age)
print("nation: ",nation)
student('ding','man','six',8)
輸出結果:
C:\Users\dingz\AppData\Local\Programs\Python\Python35\python.exe D:/Code/Python/Start/TestDemo/函數參數.py
name: ding
gender: man
grade: six
age: 8
nation: China
上面定義students函數的參數age=7,nation=’China’即爲默認參數。顧名思義,默認參數一般會有默認的值,當函數調用不對默認參數進行賦值時,會使用默認的值,當你對它進行賦值,他就會使用所賦的值。如例子中的形參age和nation。形參要按順序進行輸入。
注意:默認參數一定要用不可變對象,如果使用列表等可變元素,運行時可能會有邏輯錯誤。
3.可變參數
可變參數顧名思義就是傳入的參數個數是可以改變的,可以是0個,1個,2個……
程序示例:
def sumplus(*num):
sum=0
for i in num:
sum=sum+i
# print(sum)
return sum
sumplus(1,2,3,4)
print(sumplus(1,2,3,4,5,7))
如上,在參數前面加上“*“就表示可變參數,也可以將列表或者元組作爲參數傳遞,不過在列表或者元組名稱之前要加上星號.
程序示例:
def sumplus(*num):
sum=0
for i in num:
sum=sum+i
# print(sum)
return sum
sumplus(1,2,3,4)
print(sumplus(1,2,3,4,5,7))
nums=[1,2,3,4,5,6,7,8,9]
print(sumplus(*nums))
輸出
22
45
4.關鍵字參數
關鍵字參數即帶參數名的參數,這些關鍵字參數在函數內部會組裝成一個字典格式的數據。在參數名之前加**,即兩個星號。
程序示例:
def student(name,gender,grade,age=7,nation='China',**info):
print("name: ",name)
print("gender: ",gender)
print("grade: ",grade)
print("age: ",age)
print("nation: ",nation)
print("more: ",info)
student('yy','male','six',live_city='Beijing')
輸出:
name: yy
gender: male
grade: six
age: 7
nation: China
more: {'live_city': 'Beijing'}
也可以先構建一個字典,再把字典轉換成關鍵字參數傳進函數中。
程序示例:
def student(name,gender,grade,age=7,nation='China',**info):
print("name: ",name)
print("gender: ",gender)
print("grade: ",grade)
print("age: ",age)
print("nation: ",nation)
print("more: ",info)
info={'live_city':'Beijing','live_xiaoqu':'tiananmen'}
student('yy','male','six',live_city=info['live_city'],live_xiaoqu=info['live_xiaoqu'])
student('yy','male','six',**info)
結果:
name: yy
gender: male
grade: six
age: 7
nation: China
more: {'live_xiaoqu': 'tiananmen', 'live_city': 'Beijing'}
name: yy
gender: male
grade: six
age: 7
nation: China
more: {'live_xiaoqu': 'tiananmen', 'live_city': 'Beijing'}
Python函數參數排序
當定義的函數同時存在多種參數類型的時候,各種類型的參數要按照一定的順序進行排列,具體的順序爲:
必選參數》默認參數》可變參數》關鍵字參數