1. 程式人生 > >Python——函數的參數

Python——函數的參數

不變 bsp 重復 error: 宋體 上一個 col 關鍵字參數 相對

函數的參數分為:

1. 必須參數

2. 關鍵字參數

3. 默認參數

必須參數

最基本的特性是,我們在函數的參數列表裏面定義的參數是必須要傳遞的。

def add(x,y):
    result = x +y
    return result

我們在調用這個函數的時候,必須要給x和y分表要進行賦值,如果兩個都不賦值或者只給一個賦值,是會報錯的。

我們在定義這個函數的時候,在這個參數列表裏面給了x y,我們可以叫x 和 y 叫做形式參數,簡稱 形參 。

有形式參數,相對應的就有實際參數,簡稱 實參。

實際參數是指在調用函數的過程中,我們往函數參數列表裏面傳遞的實際的取值。

關鍵字參數

我們拿上一個函數來舉例

def add(x,y):
    result = x +y
    return result

必須參數在調用的時候是講究一個順序的,第一個傳入的實參是x的值,第二個傳入的是y的值

那如果我們要第一個傳入的是y值,第二個傳入的是x值該如何去實現呢

關鍵字參數可以不用考慮函數參數的順序,可以任意指定參數的順序從而實現參數的調用

c = add(y = 5,x = 2)

這樣就能先給y賦值了。當然,如果賦值一個參數還是不行的,有多少形參,就要有多少個實參。

默認參數

如果我們需要函數的參數列表很長,而我們又需要多次使用這個函數,有很多的參數會重復輸入,那我們就可以給這個函數設置一個默認值

def print_student_files(name,gender,age):
    print(我叫 + name)
    print(我今年 + str(age) + )
    print(我是+ gender + )

這是一個記錄學生姓名你、年齡、性別的函數(註意,第三行的age要轉換成字符串,因為字符串不能和int類型相加)

>>> print_student_files(安妮,,18)
我叫安妮
我今年18歲
我是女生

如果有30個同學,大多數都是18歲的女生。那麽我們可以用到默認參數:

def print_student_files(name,gender=
,age=18): print(我叫 + name) print(我今年 + str(age) + ) print(我是+ gender + )

這樣,我們只需要輸入名字就可以了

>>> print_student_files(曼妮)
我叫曼妮
我今年18歲
我是女生

如果有個同學年齡和性別和設置的默認值不一樣,則需要傳遞對應參數:

>>> print_student_files(約翰,,19)
我叫約翰
我今年19歲
我是男生

總結一下默認參數的規則:

在定義的時候,如果你想讓某個參數擁有默認值,那麽久在形參的後面加上一個‘=‘,並且把默認值賦給這個形參

如果你沒有給某個形參設置默認值,那麽你一定要傳遞給一個實參。

易錯點:

必須參數加上默認參數,後面再加一個必須參數

錯誤實例1:

def print_student_files(name,gender=,age):
    print(我叫 + name)
    print(我今年 + str(age) + )
    print(我是+ gender + )
SyntaxError: non-default argument follows default argument

報錯:不能把非默認參數放在默認參數之後

錯誤實例2:

我們要更改第二個默認參數(年齡),第一個默認參數(性別不變)

假設我們把每個參數都轉換成字符串

>>> def print_student_files(name,gender=,age=18):
    print(我叫 + str(name))
    print(我今年 + str(age) + )
    print(我是+ str(gender) + )

>>> print_student_files(安妮,17)
我叫安妮
我今年18歲
我是17生

解決方法:

我們把年齡17當做性別傳入進了性別的參數裏。解決方法是運用關鍵參數

>>> print_student_files(安妮,age = 17)
我叫安妮
我今年17歲
我是女生

錯誤實例3:

把默認參數和必須參數混著一起調用:

>>> print_student_files(安妮,gender=,17)
SyntaxError: positional argument follows keyword argument

Python——函數的參數