首頁 >後端開發 >Python教學 >關於 Python 函數您需要了解的一切

關於 Python 函數您需要了解的一切

DDD
DDD原創
2025-01-08 20:42:44447瀏覽

Python函數詳解:定義、呼叫及參數型別

Day Everything You Need to Know About Functions in Python

函數定義與作用

函數是一段可重複使用的程式碼區塊,只有在需要時才執行。在Python中,使用def關鍵字定義函數。

例如,以下程式碼定義了一個求和函數:

<code class="language-python">def sum(a, b):
  print(a + b)</code>

此函數計算兩個整數ab的和。 需要求兩個數和時,可以直接呼叫sum(a, b)函數。

函數呼叫

呼叫函數是指透過函數名稱後面跟著括號來執行函數內部的程式碼。 例如:

<code class="language-python">def sum(a, b):
  print(a + b)

sum(1, 3)</code>

這裡:

  • ab是函數定義中的參數。
  • 13是傳遞給函數的參數值(實參)。
  • sum是函數名。

參數型別

Python函數支援四種參數類型:

  1. 必需參數: 函數呼叫時必須提供的參數。如果沒有提供,Python會拋出TypeError異常。
<code class="language-python">def sum(a, b):
  print(a + b)

sum(1, 3)  # 正确
sum()      # TypeError</code>

ab是必需參數,因為它們沒有預設值。

  1. 關鍵字參數: 透過明確指定參數名稱來傳遞參數。
<code class="language-python">def new_print(a, b):
   print(f"{a} is a friend of {b}")

new_print(b="Alice", a="Bob")</code>

輸出:Bob is a friend of Alice

即使參數順序錯誤,關鍵字參數也能正確地將值賦給對應的參數。

  1. 預設參數: 為參數設定預設值,呼叫函數時可以省略此參數。
<code class="language-python">def sum(a=0, b=0):
   print(a + b)

sum()      # 输出:0
sum(1, 3)  # 输出:4</code>

即使沒有提供ab的值,函數也能正常執行,因為它們有預設值0。

  1. 可變長參數: 函數可以接受任意數量的參數。

    a. *args:用於接收任意數量的非關鍵字參數,在函數內部以元組的形式存取。

<code class="language-python">def sum(*numbers):
   total = 0
   for i in numbers:
     total += i
   print(total)

sum(1, 2, 3, 4)  # 输出:10</code>

b. **kwargs:用來接收任意數量的關鍵字參數,在函數內部以字典的形式存取。

<code class="language-python">def print_kwargs(**kwargs):
  for key, value in kwargs.items():
     print(f"{key}={value}")

print_kwargs(name="Alice", age=30, city="New York")</code>

四個數字交換的方法

以下四種方法都可以交換兩個數字的值:

方法一:使用臨時變數

<code class="language-python">P = 5
Q = 4
temp = P
P = Q
Q = temp</code>

方法二:元組解包

<code class="language-python">P = 5
Q = 4
P, Q = Q, P</code>

方法三:使用位元運算子

<code class="language-python">P = 5
Q = 4
P = P ^ Q
Q = P ^ Q
P = P ^ Q</code>

方法四:使用加減法

<code class="language-python">P = 5
Q = 4
P = P + Q
Q = P - Q
P = P - Q</code>

以上是關於 Python 函數您需要了解的一切的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn