<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Python 函數參數 > 原文: [https://www.programiz.com/python-programming/function-argument](https://www.programiz.com/python-programming/function-argument) #### 在 Python 中,您可以定義一個帶有可變數量參數的函數。 在本文中,您將學習使用默認,關鍵字和任意參數定義此類函數。 ## 參數 在[用戶定義的函數](/python-programming/user-defined-function)主題中,我們學習了有關定義和調用函數的知識。 否則,函數調用將導致錯誤。 這是一個例子。 ```py def greet(name, msg): """This function greets to the person with the provided message""" print("Hello", name + ', ' + msg) greet("Monica", "Good morning!") ``` **輸出** ```py Hello Monica, Good morning! ``` 在此,函數`greet()`具有兩個參數。 由于我們已經使用兩個參數調用了此函數,因此該函數運行平穩,并且沒有任何錯誤。 如果使用不同數量的參數調用它,則解釋器將顯示錯誤消息。 下面是對此函數的調用,其中包含一個參數,沒有參數以及它們各自的錯誤消息。 ```py >>> greet("Monica") # only one argument TypeError: greet() missing 1 required positional argument: 'msg' ``` ```py >>> greet() # no arguments TypeError: greet() missing 2 required positional arguments: 'name' and 'msg' ``` * * * ## 可變函數參數 到目前為止,函數具有固定數量的參數。 在 Python 中,還有其他方法來定義可以采用可變數量的參數的函數。 下面介紹這種類型的三種不同形式。 ### Python 默認參數 函數參數在 Python 中可以具有默認值。 我們可以使用賦值運算符(=)為參數提供默認值。 這是一個例子。 ```py def greet(name, msg="Good morning!"): """ This function greets to the person with the provided message. If the message is not provided, it defaults to "Good morning!" """ print("Hello", name + ', ' + msg) greet("Kate") greet("Bruce", "How do you do?") ``` **輸出**: ```py Hello Kate, Good morning! Hello Bruce, How do you do? ``` 在此函數中,參數`name`沒有默認值,并且在通話期間是必需的(強制性的)。 另一方面,參數`msg`的默認值為`"Good morning!"`。 因此,在通話期間它是可選的。 如果提供了一個值,它將覆蓋默認值。 函數中的任意數量的參數都可以具有默認值。 但是,一旦有了默認參數,它右邊的所有參數也必須具有默認值。 這意味著非默認參數不能跟隨默認參數。 例如,如果我們將上面的函數頭定義為: ```py def greet(msg = "Good morning!", name): ``` 我們將收到以下錯誤消息: ```py SyntaxError: non-default argument follows default argument ``` * * * ### Python 關鍵字參數 當我們調用帶有某些值的函數時,這些值將根據其位置分配給參數。 例如,在上面的函數`greet()`中,當我們將其稱為`greet("Bruce", "How do you do?")`時,會將值`"Bruce"`分配給參數`name`,并且將`"How do you do?"`分配給`msg`。 Python 允許使用關鍵字參數調用函數。 當我們以這種方式調用函數時,參數的順序(位置)可以更改。 對上述函數的后續調用均有效,并產生相同的結果。 ```py # 2 keyword arguments greet(name = "Bruce",msg = "How do you do?") # 2 keyword arguments (out of order) greet(msg = "How do you do?",name = "Bruce") 1 positional, 1 keyword argument greet("Bruce", msg = "How do you do?") ``` 如我們所見,我們可以在函數調用期間將位置參數與關鍵字參數混合。 但是我們必須記住,關鍵字參數必須跟隨位置參數。 在關鍵字參數之后放置位置參數會導致錯誤。 例如,函數調用如下: ```py greet(name="Bruce","How do you do?") ``` 會導致錯誤: ```py SyntaxError: non-keyword arg after keyword arg ``` * * * ### Python 任意參數 有時,我們事先不知道將傳遞給函數的參數數量。 Python 允許我們通過帶有任意數量參數的函數調用來處理這種情況。 在函數定義中,我們在參數名稱前使用星號(*)表示此類參數。 這是一個例子。 ```py def greet(*names): """This function greets all the person in the names tuple.""" # names is a tuple with arguments for name in names: print("Hello", name) greet("Monica", "Luke", "Steve", "John") ``` **輸出**: ```py Hello Monica Hello Luke Hello Steve Hello John ``` 在這里,我們調用了帶有多個參數的函數。 這些參數在傳遞給函數之前被包裝為一個元組。 在函數內部,我們使用`for`循環取回所有參數。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看