您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python中函數的參數和返回值怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
01、函數參數和返回值的作用
函數根據 有沒有參數 以及 有沒有返回值,可以相互結合,共有四種:
無參數 無返回值
無參數 有返回值
有參數 無返回值
有參數 有返回值
定義函數時候,是否接收參數,或者時候返回結果,是根據實際功能需求決定的。
如果函數內部處理的數據不確定,就可以將外界的數據以參數形式傳遞到函數內部。
如果希望一個函數執行完成后,向外界匯報執行結果,就可以增加函數的返回值。
02、函數的返回值—進階
在程序開發中,有時候,會希望一個函數執行結束后,告訴調用者一個結果,以便調用者針對具體的結果做后續的操作
返回值是函數完成工作后,最后給調用者的一個結果
在函數中使用return關鍵字可以返回結果
調用函數的一方,可以使用變量來接收函數的返回結果
問題:一個函數執行后能否返回多個結果???
示例:溫度和濕度的測量
假設開發一個函數,同時返回當前溫度和濕度先
返回溫度
def measure(): temp = 39 return temp result = measure() print(result)
運行結果:
利用元組在返回溫度的同時,返回濕度
改造如下:
def measure(): temp = 39 wetness = 50 # 如果函數返回的類型是元組,小括號可以省略 return temp, wetness result = measure() print(type(result)) print(result) print(result[0]) print(result[1])
運行結果:
注意:
如果函數的返回值類型是元組,可以一次使用多個變量接收元組中的元素
使用多個變量接收結果時,變量的個數應該和元組中元素的個數保持一致。
def measure(): temp = 39 wetness = 50 # 如果函數返回的類型是元組,小括號可以省略 return temp, wetness gl_temp, gl_wetness = measure() print(gl_temp) print(gl_wetness)
執行結果:
03、函數的參數—進階
3.1 關于函數的兩個問題
問題1:在函數內部,針對參數使用賦值語句,會不會影響調用函數時傳遞的實參變量?——————No
無論傳遞的參數是可變還是不可變
只要針對參數使用賦值語句,就會在函數內部修改局部變量的引用,不會影響到外部變量的引用。
def demo(num, num_list): print("函數內部:") num = 200 num_list = [1, 2, 3] print(num) print(num_list) print("內部代碼完成") gl_num = 99 gl_list = [4, 5, 6] demo(gl_num, gl_list) print(gl_num) print(gl_list)
運行結果:
問題2:如果傳遞的參數是可變類型,在函數內部,使用方法修改了數據內容,會不會影響調用函數時傳遞的實參變量?——————YES
def demo(num_list): num_list.extend([1, 2, 3]) print(num_list) gl_list = [6, 7, 8] print(gl_list) demo(gl_list) print(gl_list)
運行結果:
3.2缺省參數
定義函數時,可以給某個參數指定一個默認值,具有默認值的參數就叫做缺省參數
調用函數時,如果沒有傳入缺省參數的值,則在函數內部使用定義函數時指定的參數默認值
函數的缺省參數,將常見的值設置為參數的缺省值,從而簡化函數的調用
例如:對列表排序的方法
gl_num_list = [6, 3, 9] # 默認是升序排序,因為這種需求更多 gl_num_list.sort() print(gl_num_list) # 只有當需要降序排序的時候,才需要傳遞reverse參數 gl_num_list.sort(reverse=True) print(gl_num_list)
運行結果:
指定函數的缺省參數值
在參數后使用賦值語句,可以指定參數的缺省值
def print_info(name, gender=True): gender_text = "男生" if not gender: gender_text = "女生" print("%s 是 %s" % (name, gender_text)) print_info("張三") print_info("李四", False)
執行結果:
提示:
缺省參數,需要使用最常見的值作為默認值
如果一個參數的值不能確定,則不應該設置該默認值,具體的數值在調用函數時,由外界傳遞!
缺省參數的注意事項:
①缺省參數的定義位置
必須保證帶有默認值的缺省參數在參數列表末尾
So,以下定義是錯誤滴
②調用帶有多個缺省參數的函數
在調用函數的時候,如果有多個缺省參數,需要指定參數名,這樣解釋其才能知道對應關系。
正確書寫:
3.3多值參數
定義支持多值參數的函數
有時可能需要一個函數能夠處理的參數個數是不確定的,這個時候,就可以使用多值參數
Python中有兩種多值參數:
參數名前增加一個*可以接受元組
參數名前增加兩個*可以接收字典
一般在給多值參數命名時,習慣使用以下兩個名字
*args — 存放 元組 參數,前面有 *
**kwargs — 存放 字典參數,前面有**
args是arguments的縮寫,有變量的含義
kw是keyword的縮寫,kwargs可以記憶鍵值對參數
def demo(num, *args, **kwargs): print(num) print(args) print(kwargs) demo(1, 2, 3, 4, 5, name="小米", age=18, gender=True)
運行結果:
元組和字典的拆包
在調用帶有多值參數的函數時,如果希望
將一個 元組變量,直接傳遞給args
將一個 字典變量,直接傳遞給kwargs
就可以使用拆包,簡化參數的傳遞,拆包的方式是:
在元組變量前,加一個*
在字典變量前,加兩個*
在開發時,如果需要直接將一個元組或者字典變量傳遞給函數內部,則需要拆包。
如果我們不進行拆包操作,所傳參數會進行打包傳遞,如下圖:
進行拆包后:
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python中函數的參數和返回值怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。