Python入門-Day7:函數

更新於 發佈於 閱讀時間約 12 分鐘

定義函數

在Python中,函數可以通過def關鍵字來定義。定義函數的一般格式如下:

def 函數名(參數列表):
函數體

其中,函數名是函數的名稱,參數列表是用括號括起來的參數,多個參數用逗號分隔。函數體是函數執行的代碼塊,可以包含任意數量的語句。

例如,下面的代碼定義了一個名為hello的函數,該函數不接受任何參數,並在調用時打印出一條歡迎消息:

def hello():
print("歡迎使用本程序!")

調用函數

定義完函數後,可以通過函數名來調用函數。調用函數的一般格式如下:

函數名(參數列表)

其中,函數名是要調用的函數名稱,參數列表是用括號括起來的參數,多個參數用逗號分隔。如果函數不接受任何參數,則可以省略參數列表。

例如,下面的代碼調用了上面定義的hello函數:

hello()

該代碼將打印出一條歡迎消息。

函數的參數傳遞

在 Python 中,函數的參數可以透過兩種方式進行傳遞:位置參數和關鍵字參數。

入門範例

位置參數是指按照參數的位置順序傳遞的參數。例如,我們可以定義一個名為 add 的函數,該函數接受兩個位置參數 ab,並返回它們的和:

def add(a, b):
return a + b

我們可以調用該函數並傳遞兩個參數,如下所示:

result = add(2, 3)
print(result) # 輸出 5

在該示例中,我們將參數 2 和 3 按照位置順序傳遞給 add 函數,函數將它們相加並返回它們的和,該和被存儲在變量 result 中,並被打印輸出。

參數的類型

  • 必填参数
  • 關鍵字参数
  • 默認参数
  • 不定長度参数

必填参数

必填参数是指在調用函數時必須傳遞的參數,如果沒有傳遞這些參數,則會報錯。例如,下面的代碼定義了一個名為 add 的函數,該函數接受兩個必填參數 ab,並返回它們的和:

def add(a, b):
return a + b

我們可以調用該函數並傳遞兩個參數,如下所示:

result = add(2, 3)
print(result) # 輸出 5

在該示例中,我們將參數 2 和 3 傳遞給 add 函數,函數將它們相加並返回它們的和,該和被存儲在變量 result 中,並被打印輸出。

關鍵字參數

關鍵字參數是指在調用函數時按照參數名稱傳遞的參數。使用關鍵字參數可以讓我們在調用函數時不必考慮參數的順序。例如,下面的代碼定義了一個名為 print_person_info 的函數,該函數接受三個關鍵字參數 nameagegender,並打印出這些參數代表的人物的信息:

def print_person_info(name, age, gender):
print("姓名:%s" % name)
print("年齡:%d" % age)
print("性別:%s" % gender)

我們可以調用該函數並傳遞三個關鍵字參數,如下所示:

print_person_info(name="張三", age=20, gender="男")

在該示例中,我們將參數 nameagegender 按照參數名稱傳遞給 print_person_info 函數,函數將根據這些參數打印出人物的信息。

默認参数

默認參數是指在定義函數時指定的一個默認值,如果在調用函數時沒有傳遞這些參數,則函數將使用這個默認值。例如,下面的代碼定義了一個名為 add 的函數,該函數接受兩個默認參數 ab,並返回它們的和:

def add(a=0, b=0):
return a + b

我們可以調用該函數並不傳遞任何參數,如下所示:

result = add()
print(result) # 輸出 0

在該示例中,我們沒有傳遞任何參數給 add 函數,函數使用了默認值 0 來計算並返回和。

不定長度參數

不定長度參數是指在調用函數時可以傳遞任意數量的參數。在 Python 中,有兩種不定長度參數:不定長度位置參數和不定長度關鍵字參數。不定長度位置參數是指在調用函數時可以傳遞任意數量的位置參數,這些參數將被收集到一個元組中。不定長度關鍵字參數是指在調用函數時可以傳遞任意數量的關鍵字參數,這些參數將被收集到一個字典中。例如,下面的代碼定義了一個名為 add 的函數,該函數接受任意數量的位置參數和任意數量的關鍵字參數,並返回它們的和:

def add(*args, **kwargs):
result = 0
for arg in args:
result += arg
for kwarg in kwargs.values():
result += kwarg
return result

我們可以調用該函數並傳遞任意數量的位置參數和關鍵字參數,如下所示:

result = add(1, 2, 3, a=4, b=5)
print(result) # 輸出 15

在該示例中,我們傳遞了三個位置參數 1、2 和 3,以及兩個關鍵字參數 ab,函數將這些參數相加並返回它們的和。

return語句

return語句用於結束函數的執行並返回一個值。在函數體中,可以使用return語句將值返回給調用方。如果函數沒有return語句,則函數執行完畢後不會返回任何值。

例如,下面的代碼定義了一個名為add的函數,該函數接受兩個參數ab,並返回它們的和:

def add(a, b):
return a + b

我們可以調用該函數並傳遞兩個參數,如下所示:

result = add(2, 3)
print(result) # 輸出 5

在該示例中,我們將參數2和3傳遞給add函數,函數將它們相加並返回它們的和,該和被存儲在變量result中,並被打印輸出。

如果函數沒有return語句,則函數執行完畢後不會返回任何值。例如,下面的代碼定義了一個名為say_hello的函數,該函數不接受任何參數,並在調用時打印出一條歡迎消息:

def say_hello():
print("歡迎使用本程序!")

我們可以調用該函數,如下所示:

say_hello()

該代碼將打印出一條歡迎消息,但不會返回任何值。

綜合範例

def hello(a):
print(f"{a}:歡迎使用本程序!")

def add(a, b):
c = a + b
return c

def add2(a=0, b=0):
c = a + b
return c

def add3(*args, **kwargs):
result = 0
for arg in args:
result += arg
for kwarg in kwargs.values():
result += kwarg
return result

mathNumber = add(b=2, a=1)
print(mathNumber)
print(add2(1, 2))
result = add3(a=1, b=2, c=3, d=4, e=5)
print(result)
result = add3(1, 2, 3, 4, 5)
print(result)

全域變數和區域變數

在 Python 中,變數可以分為全域變數和區域變數兩種。

全域變數是指在函數外部定義的變數,可以在整個程序中使用。區域變數是指在函數內部定義的變數,只能在該函數內部使用。

當在函數內部定義一個變數時,該變數通常是一個區域變數。如果在函數內部需要使用一個全域變數,可以使用 global 關鍵字來聲明它。

下面的示例演示了如何在 Python 中使用全域變數和區域變數:

x = 10 # 定義一個全域變數 x

def func():
y = 5 # 定義一個區域變數 y
global x # 使用 global 關鍵字聲明 x 為全域變數
x = x + y # 在函數內部使用全域變數 x 和區域變數 y
print("x =", x) # 輸出全域變數 x 的值

func() # 調用函數
print("x =", x) # 輸出全域變數 x 的值

在該示例中,我們定義了一個全域變數 x 和一個函數 func。函數內部定義了一個區域變數 y,並使用 global 關鍵字聲明變數 x 為全域變數。在函數內部,我們使用全域變數 x 和區域變數 y 進行計算,並將結果存儲在全域變數 x 中。最後,我們分別輸出了全域變數 x 的值。

調用不同檔案間的函數(副程式的概念)

在 Python 中,我們可以在一個檔案中定義函數,然後在另一個檔案中調用它。

為了在不同的檔案之間共用函數,我們需要將函數定義放在一個單獨的檔案中,然後在其他檔案中通過 import 關鍵字導入該檔案。

下面是一個簡單的範例,展示了如何在兩個不同的檔案中共用一個函數:

my_module.py 檔案中定義一個函數:

def greet(name):
print("Hello, " + name + "!")

main.py 檔案中使用該函數:

import my_module

my_module.greet("John")

在這個範例中,my_module.py 檔案定義了一個名為 greet 的函數,該函數接受一個參數 name,並打印出一條問候語。在 main.py 檔案中,我們使用 import 關鍵字導入 my_module 檔案,然後使用 my_module.greet 調用 greet 函數,並傳遞一個參數 "John"

在這個例子中,我們將 greet 函數和 main 函數定義在不同的檔案中,並通過 import 關鍵字將它們連接在一起。這樣,我們就可以在 main.py 檔案中使用 greet 函數了。

總和範例

toy.py

def hello(a):
'''
This is a function to say hello to a person.
'''
print(f"{a}:歡迎使用本程序!")

def add(a, b):
'''
This is a function to add two numbers.
'''
c = a + b
return c

def add2(a=0, b=0):
'''
This is a function to add two numbers.
'''
c = a + b
return c

def add3(*args, **kwargs):
'''
This is a function to add numbers.
'''
result = 0
for arg in args:
result += arg
for kwarg in kwargs.values():
result += kwarg
return result

main.py

import toy

mathNumber = toy.add(b=2, a=1)
print(mathNumber)
print(toy.add2(1, 2))
result = toy.add3(a=1, b=2, c=3, d=4, e=5)
print(result)
result = toy.add3(1, 2, 3, 4, 5)
print(result)
print(toy.hello("小明"))
留言
avatar-img
留言分享你的想法!
avatar-img
Michael楊
18會員
111內容數
日後將分享關於我的經驗(日常、工作、技術),並期待未來能創造屬於我的宇宙。
Michael楊的其他內容
2024/05/18
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
2024/05/18
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
2024/05/16
例外處理是Python中的重要概念,用於控制並處理程序異常,防止程序崩潰和數據損失。它包括try, except, else和finally等語法結構,可用於對特定錯誤進行處理,或主動觸發和自定義異常。
Thumbnail
2024/05/16
例外處理是Python中的重要概念,用於控制並處理程序異常,防止程序崩潰和數據損失。它包括try, except, else和finally等語法結構,可用於對特定錯誤進行處理,或主動觸發和自定義異常。
Thumbnail
2024/05/15
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
Thumbnail
2024/05/15
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
在這一章中,我們探討了 PHP 中的函數,包括函數的基本結構、不同的函數定義方式(如函數聲明、函數表達式、箭頭函數和匿名函數)以及如何呼叫函數。我們還討論了函數的參數處理方式,包括單個參數、多個參數、預設參數值和剩餘參數。此外,我們還介紹了函數的返回值,包括返回單個值、返回物件和返回函數的情況。
Thumbnail
在這一章中,我們探討了 PHP 中的函數,包括函數的基本結構、不同的函數定義方式(如函數聲明、函數表達式、箭頭函數和匿名函數)以及如何呼叫函數。我們還討論了函數的參數處理方式,包括單個參數、多個參數、預設參數值和剩餘參數。此外,我們還介紹了函數的返回值,包括返回單個值、返回物件和返回函數的情況。
Thumbnail
這章節的目的是介紹 Kotlin 語言中函數的基本用法和概念,包括函數的聲明、使用、參數和返回值等。通過學習這章節,讀者可以熟練掌握如何在 Kotlin 中定義和使用函數,來解決各種問題。
Thumbnail
這章節的目的是介紹 Kotlin 語言中函數的基本用法和概念,包括函數的聲明、使用、參數和返回值等。通過學習這章節,讀者可以熟練掌握如何在 Kotlin 中定義和使用函數,來解決各種問題。
Thumbnail
本章節旨在介紹TypeScript中的函數,包括其基本結構、如何呼叫函數、函數的參數以及函數的返回值等相關概念。通過本章節,讀者可以學習到如何在TypeScript中使用不同的方式來定義函數,如函數聲明、函數表達式、箭頭函數和匿名函數等。
Thumbnail
本章節旨在介紹TypeScript中的函數,包括其基本結構、如何呼叫函數、函數的參數以及函數的返回值等相關概念。通過本章節,讀者可以學習到如何在TypeScript中使用不同的方式來定義函數,如函數聲明、函數表達式、箭頭函數和匿名函數等。
Thumbnail
本章節旨在介紹 C# 中函數的基本結構,包括訪問修飾符、返回類型、方法名稱、參數列表和方法體。同時,也介紹了函數的各種呼叫方式、參數傳遞方式和返回值類型。讀者可以通過本章節,深入理解 C# 中函數的使用和應用。
Thumbnail
本章節旨在介紹 C# 中函數的基本結構,包括訪問修飾符、返回類型、方法名稱、參數列表和方法體。同時,也介紹了函數的各種呼叫方式、參數傳遞方式和返回值類型。讀者可以通過本章節,深入理解 C# 中函數的使用和應用。
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
Thumbnail
本文將介紹自定函式及應用,利用程式範例解釋為什麼要用到自定函式 自定函式好處當然就是,讓你的程式碼看起來比較簡潔,在重複使用到的程式碼區塊,可以包裝成函式,讓你重複使用它。
Thumbnail
本文將介紹自定函式及應用,利用程式範例解釋為什麼要用到自定函式 自定函式好處當然就是,讓你的程式碼看起來比較簡潔,在重複使用到的程式碼區塊,可以包裝成函式,讓你重複使用它。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News