Python之道(1)---從Python函數參數類型說起

Python參數分類:

  1. 必選參數
  2. 默認參數
  3. 可變參數
  4. 關鍵字參數

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函數參數排序

當定義的函數同時存在多種參數類型的時候,各種類型的參數要按照一定的順序進行排列,具體的順序爲:
必選參數》默認參數》可變參數》關鍵字參數

發佈了93 篇原創文章 · 獲贊 29 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章