Python函數參數的使用方法

2020-12-27 米粒教育

Pyhton函數給編寫程序帶來了便捷性,開發人員可以把程序的共用代碼,或者說是程序的通用功能封裝成函數。當需要使用函數時,只需要在代碼的相應位置調用函數即可。

在《初識Python函數編程與代碼的可復用性》一文中,我們已經了解了如何定義一個函數和調用函數。但對函數參數的傳遞沒有詳細討論,本文主要討論函數參數的傳遞。

函數中的參數起到了傳遞數據的作用,函數調用者可以通過函數參數把函數內部需要的數據從外部傳遞過去。例如下面的代碼定義了函數summation,它有一個參數number,函數需要這個參數來計算自然數的累加和。調用者調用函數時,需要傳入一個自然數進去。

在上面的代碼中,聲明summation函數語句的參數稱為形參,調用summation函數時傳入的參數稱為實參,例如在summation函數中,函數聲明語句的number是形參,後面的代碼調用summation函數傳入的自然數10、20、100是實參。這裡需要注意的是,函數聲明時的形參數量和調用函數時傳入的實參數量要一致,聲明的形參順序和傳入的實參順序也要一致。

一般說來定義多少個形參,就需要傳入多少個實參。在一些特殊情況下,函數雖然定義了形參,但在調用函數時可以不用傳入實參,這就是默認參數的作用。默認參數的意思就是給函數的形參設置一個默認值,如果在調用函數時沒有傳入實參,那麼這個默認值將會作為實參傳遞給函數。默認參數可以簡化函數的調用,調用者不需要傳入過多的實參。

給函數設置默認參數時要遵循該參數具有共性和不變屬性的規則,在特殊情況下可以用傳入的實參代替默認值。例如在一個計算銀行利息的函數中,聲明的參數有利率、本金和存款存期,在這三個參數中利率一般是不變的,它具有共性和不變屬性,可以設置為默認參數,當因特殊情況利率發生變化時,可以傳入實參來代替默認值。下面的代碼給出了如何聲明帶有默認參數的函數。

在上面的代碼中,定義了calculation函數,用於計算應付利息。該函數有三個參數,分別是principal(本金)、date(存期)、rate(利率),其中利率為默認參數,默認值是0.05(5%)。默認參數的聲明語法就是在形參名稱後面用運算符「=」給形參賦值。當函數的形參被聲明為默認參數後,調用函數時就可以省略該參數的傳入。這裡需要注意的是,被聲明為默認參數的形參需要放置在不是默認參數的形參後面。

在實際編程中,還會遇到這樣的情況:要求編寫一個函數,實現求多個自然數的平均值。這就有點難度了,求多個自然數的平均值不難,難就難在要用函數來實現,求平均值的自然數個數又不確定,如何聲明函數的形參呢?

這就要用到可變參數了,可變參數允許調用函數時傳入的參數是可變的,可以是1個實參、2個實參或者多個實參,也可以是0個實參。聲明可變參數時,只需要在形參名稱之前加「*」符號即可,調用函數時可以傳入任意個實參。

在上面的代碼中,函數average就使用了可變參數,在函數形參numbers前面加「*」符號,加上「*」符號的numbers不再是單個值,而是一個元組。當調用有可變參數的函數時,Python解釋器會把傳入的多個參數封裝到一個元組裡面,再傳遞給函數。

在形參名稱前面加一個「*」符號,可以讓形參變為一個元組使用。有時我們更希望傳入的可變參數是一個字典,字典是一個鍵值對,類似於JSON數據。Python也支持可變參數作為字典的傳入,語法就是在形參名稱前面加二個「*」符號。

假設要編寫一個輸出用戶信息的函數,用戶信息包含用戶的姓名、年齡、身高等內容,但用戶信息有的完整、有的不完整,輸出的內容不完全相同。這時我們就可以在函數中使用字典類型的可變參數。

在上面的代碼中,聲明了userinfo函數,函數的形參user是字典類型的可變參數,在函數體內部可以把uesr參數直接作為字典來使用。這裡需要注意的是,當形參為字典可變參數時,函數調用時傳入的參數必須是字典數據。

前面主要討論了Python函數參數的使用方法。Python函數支持默認參數,默認參數需要在形參名稱後面使用賦值語句賦值,默認參數不支持字典、列表等內容可變對象。另外聲明默認參數時,需要把聲明的默認參數放置在不是默認參數的形參後面。

Python也支持可變參數,可變參數分為元組類型的可變參數和字典類型的可變參數。元組類型的可變參數是在形參名稱前面加一個「*」符號,字典類型的可變參數是在形參名稱前面加兩個「*」符號。

相關焦點

  • Python函數的5類參數使用詳解
    1 各種參數使用之坑Python強大多變,原因之一在於函數參數類型的多樣化。方便的同時,也為使用者帶來更多的約束規則。位置參數位置參數的定義:函數調用時根據函數定義的參數位(形參)置來傳遞參數,是最常見的參數類型。
  • Python中的函數定義與參數使用
    本節知識點:(1)函數定義格式;(2)五種參數使用函數定義 基本語法格式def function_name(  parameter_list  ):              return values函數通常為小寫英語單詞及其組合
  • python參數類型使用總結
    今日分享python參數類型盤點Python強大多變,原因之一在於函數參數類型的多樣化。方便的同時,也為使用者帶來更多的約束規則。位置參數位置參數的定義:函數調用時根據函數定義的參數位(形參)置來傳遞參數,是最常見的參數類型。
  • Python函數詳解一(函數參數、變量作用域)
    Python函數函數是python程序的重要組成部分。所謂函數就是實現某一特定功能的代碼段,可重複使用,提高了代碼的利用率。
  • Python中的函數參數
    ,使用默認值 print("使用默認值", t) return # 調用函數,不傳入參數會使用默認值 print(tac())
  • python內置函數format的使用方法
    前言其實在Java中,我們已經解除過format的使用,例如:當我們要把昨天的訂單金額統計後顯示到前臺時,由於資料庫存儲的是double格式的數據,在統計完昨天的訂單金額後仍然是double類型的數據,但是,之前遇到過此類問題的小夥伴都知道,這個訂單額有時候會喪失精度,變成一個很長的
  • 【Python基礎】Python 函數使用總結
    2 引用傳參定義好一個函數後,使用:函數名+()+實參,調用函數,如下方法:foo([10,2,5,4]):默認值是聲明在函數定義時,關鍵字參數是在函數調用時使用的此結構。4 可變參數Java和C++在解決同一個函數但參數個數不同時,會使用函數重載的方法。Python使用可變參數的方法,非常靈活。
  • 科學使用python中的Map函數和Filter函數
    實現此目的的一種方法是使用for循環遍歷數字列表,並返回每個數字或每個元素的平方。 並且,在遍歷列表時,將平方值添加到新列表中。 我們使用for循環遍歷num_list,並將num_list每個元素的平方附加到num_list_squared列表中。完成此操作的另一種方法是使用內置的 python 函數 map。Map 函數接受兩個參數: 我們要應用的函數和我們要應用它的迭代對象或序列(例如本例中的列表)。換句話說,map 函數映射或應用這個函數到我們傳入的序列的每個元素。
  • Python入門基礎中怎麼定義函數,函數調用,函數傳遞參數
    定義一個函數你可以定義一個由自己想要功能的函數,以下是簡單的規則:函數代碼塊以def關鍵詞開頭,後面依次寫出函數名、括號、括號中的參數和冒號。任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用於定義參數。函數的第一行語句可以選擇性地使用文檔字符串—用於存放函數說明。函數內容以冒號起始,在縮進塊中編寫函數體。return 表達式結束函數,選擇性地返回一個值給調用方。
  • Python使用ctypes模塊調用DLL函數之複數數組的參數傳遞
    在Python語言中,可以使用ctypes模塊調用其它如C++語言編寫的動態連結庫DLL文件中的函數,前面多篇文章中已經講了傳遞數值/指針/字符串參數、傳遞結構體參數、傳遞普通數組類型的例子,大家可以回看一下,這樣可以更好的理解本次要講的內容。
  • Python使用ctypes模塊調用DLL函數之傳遞結構體參數
    在Python語言中,可以使用ctypes模塊調用其它如C++語言編寫的動態連結庫DLL文件中的函數,在提高軟體運行效率的同時,也可以充分利用目前市面上各種第三方的DLL庫函數,以擴充Python軟體的功能及應用領域,減少重複編寫代碼、重複造輪子的工作量,這也充分體現了Python語言作為一種膠水語言所特有的優勢
  • Python入門基礎之map()、reduce()函數使用
    本文環境都是基於python3.X的,畢竟要學會擁抱未來,擁抱新的知識。Python3 現在已經發展的差不多了。1、 map()函數map()是 python 內置的高階函數,它接收一個函數 f 和一個 list,並通過把函數 f 依次作用在 list 的每個元素上,得到一個新的object並返回。
  • Python函數作為函數的參數來使用
    在前面討論閉包概念的時候,我們了解了函數名稱可以賦值給其它變量,被賦值的變量稱為函數的引用,當該變量被使用時,就會執行變量所引用的函數。上面的代碼定義了add函數,用於求兩數的和,需要傳入a和b兩個參數。
  • python 函數定義以及函數的調用
    return 和 print 的區別,return是函數的返回值,返回值可以賦值給變量,而print只是列印出來實例:判斷是否大於8,有2種方法方法一li = [2, 3, 8, 9, 12]for i
  • python 內置函數
    列舉部分python內置函數描述abs() 函數返回數字的絕對值
  • python之lambda函數使用
    lambda [arg1 [,arg2,argn]]:expressionargs指的是參數,expression指條件表達式,根據參數,進行條件表達後輸出相應內容。二,lambda簡單使用def detail(x,y): return x*ys = lambda x,y:x*yprint(s(3,3))以上對比我們可以看出如果我們想計算兩個數的乘積,需要定義一個函數,傳入兩個形參,然而lambda也是直接傳入兩個形參。後面使用冒號,寫入表達式,即可得到我們所需要的結果。
  • Python 函數3000字使用總結
    2 引用傳參定義好一個函數後,使用:函數名+()+實參,調用函數,如下方法:foo([10,2,5,4]):默認值是聲明在函數定義時,關鍵字參數是在函數調用時使用的此結構。4 可變參數Java和C++在解決同一個函數但參數個數不同時,會使用函數重載的方法。Python使用可變參數的方法,非常靈活。
  • 在Python中使用Reduce函數
    使用for循環介紹reduce()函數的最好的方式是從實際問題入手,並嘗試用老式的方法解決它,即使用for循環。然後我們可以使用reduce函數嘗試解決相同的問題。假設我們有一個數字列表,我們希望將列表中的所有數字相乘,然後返回乘積。
  • Python每天一分鐘:如何把元組/字典作為參數傳遞給函數(附代碼)
    學習程式語言的讀者對於函數參數的傳遞應該都不陌生,目前業內已經有多種高級語言允許定義個數可變的參數,這樣的好處是可以在調用函數時傳入任意多個參數。python可變參數當然,Python 也不例外,那麼如何在定義函數時支持使用可變參數呢?
  • Python基礎知識儲備,函數的參數和返回值的用法,實操演示
    python函數一、函數的參數,具有通用性,如果數據採用相同的處理邏輯,使用函數能夠適應更多的數據形參:定義函數時,小括號中的參數,是用來接收參數使用的,在函數內部作為變量使用實參:調用函數時,小括號中的參數,是用來把數據傳遞到函數內部使用的。