在 Python 中,函數(shù)是用于封裝可重復(fù)使用代碼的利器。以下是核心用法詳解:
1. 定義函數(shù)
# 基本結(jié)構(gòu)
def 函數(shù)名(參數(shù)1, 參數(shù)2=默認(rèn)值):
"""文檔字符串(可選)"""
# 函數(shù)體
return 返回值 # 無(wú)return時(shí)默認(rèn)返回None
# 示例
def greet(name, msg="早上好!"):
"""向用戶發(fā)送問候"""
greeting = f"你好,{name}!{msg}"
return greeting
2. 調(diào)用函數(shù)
# 調(diào)用無(wú)返回值函數(shù)
print("開始執(zhí)行")
# 調(diào)用有返回值函數(shù)
result = greet("小明")
print(result) # 輸出:你好,小明!早上好!
# 直接使用返回值
print(greet("小紅", "今天天氣不錯(cuò)!"))
3. 參數(shù)類型
| 類型 | 示例 | 說明 |
|---|---|---|
| 位置參數(shù) | func(1, 2) |
按順序傳遞參數(shù) |
| 關(guān)鍵字參數(shù) | func(b=3, a=4) |
按參數(shù)名指定,可打亂順序 |
| 默認(rèn)參數(shù) | def func(a, b=5): |
調(diào)用時(shí)可省略有默認(rèn)值的參數(shù) |
| 可變參數(shù) | def func(*args): |
接收任意數(shù)量位置參數(shù)(元組) |
| 關(guān)鍵字可變參數(shù) | def func(**kwargs): |
接收任意數(shù)量關(guān)鍵字參數(shù)(字典) |
示例:
def calculate(a, b, *extras, operation='add', **options):
if operation == 'add':
result = a + b + sum(extras)
elif operation == 'multiply':
result = a * b
for key in options:
print(f"{key}: {options[key]}")
return result
# 調(diào)用
calc = calculate(10, 5, 2, 3, operation='add', color='red', debug=True)
# 輸出:15 (10+5+2+3=20) + 打印 color: red, debug: True
4. 特殊用法
-
匿名函數(shù)(lambda):
square = lambda x: x ** 2 print(square(5)) # 輸出:25 -
變量作用域:
global_var = 10 def test_scope(): local_var = 20 global global_var global_var = 30 # 修改全局變量 test_scope() print(global_var) # 輸出:30 -
返回多個(gè)值(實(shí)質(zhì)是返回元組):
def split_name(full_name): first, last = full_name.split(" ") return first, last # 相當(dāng)于 (first, last) fname, lname = split_name("張三 李四")
5. 函數(shù)文檔
def example():
"""這里是函數(shù)文檔字符串(docstring)
描述函數(shù)功能、參數(shù)和返回值
可通過 example.__doc__ 訪問
"""
pass
print(help(example)) # 查看函數(shù)說明
核心原則
- 單一職責(zé):一個(gè)函數(shù)只做一件事
- DRY原則(Don't Repeat Yourself):避免重復(fù)代碼
- 參數(shù)檢查:驗(yàn)證輸入有效性(如用
isinstance()) - 命名規(guī)范:函數(shù)名用
snake_case格式
實(shí)戰(zhàn)示例:生成斐波那契數(shù)列
def fibonacci(n):
"""生成前n項(xiàng)斐波那契數(shù)列"""
if n <= 0:
return []
sequence = [0, 1][:n]
while len(sequence) < n:
next_val = sequence[-1] + sequence[-2]
sequence.append(next_val)
return sequence
print(fibonacci(10)) # 輸出:[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
掌握這些知識(shí)后,你已能高效使用 Python 函數(shù)構(gòu)建模塊化程序!
Python函數(shù)該怎么學(xué)?從零開始教會(huì)你只需一節(jié)課_第2節(jié) #硬聲創(chuàng)作季
函數(shù),代碼,python
2023-08-02 01:46:50
Python函數(shù)該怎么學(xué)?從零開始教會(huì)你只需一節(jié)課_第1節(jié) #硬聲創(chuàng)作季
函數(shù),代碼,python
2023-08-02 01:46:00
Python函數(shù)該怎么學(xué)?從零開始教會(huì)你只需一節(jié)課_第3節(jié) #硬聲創(chuàng)作季
函數(shù),代碼,python
2023-08-02 01:47:40
Python入門之什么是函數(shù)
Python函數(shù)比我們想象的更為靈活。由于Python函數(shù)是對(duì)象,所以函數(shù)對(duì)象可以賦值給其他的名字、傳遞給其他函數(shù)、嵌入到數(shù)據(jù)結(jié)構(gòu)、從一個(gè)函數(shù)返回給另一個(gè)函數(shù),等等,就好像它們是簡(jiǎn)單的數(shù)字或字符串。 下面的代碼演示了把一個(gè)函數(shù)對(duì)象賦給其他的名稱并調(diào)用它:
2023-02-21 14:24:17
不屬于python的內(nèi)置函數(shù)
Python是一種高級(jí)編程語(yǔ)言,它提供了許多內(nèi)置函數(shù),可以幫助開發(fā)人員更輕松地處理各種任務(wù)。但是,在Python中并非所有的函數(shù)都是內(nèi)置函數(shù)。以下是一些不屬于Python內(nèi)置函數(shù)的常用函數(shù)
2023-11-29 14:27:01
為什么Python沒有main函數(shù)?
今天的文章中,我們來討論一下為什么有的編程語(yǔ)言有main函數(shù),而Python為什么沒有main函數(shù)。
2023-08-17 11:47:10
python調(diào)用math函數(shù)的方法
在Python編程中,數(shù)學(xué)函數(shù)是非常重要的工具,我們可以使用它們進(jìn)行各種數(shù)值計(jì)算、幾何運(yùn)算和統(tǒng)計(jì)分析等操作。Python的標(biāo)準(zhǔn)庫(kù)中內(nèi)置了很多數(shù)學(xué)函數(shù),而其中最基本和常用的數(shù)學(xué)函數(shù)被封裝在math模塊
2023-11-22 11:01:55
Python 函數(shù)默認(rèn)返回None的原因
Python 函數(shù)默認(rèn)返回None是什么原因?定義的函數(shù)沒有返回值,Python 解釋器就會(huì)強(qiáng)行地默認(rèn)給注入一段返回邏輯!實(shí)際上 Python 中有很多行為都是隱性的。
2020-08-21 10:51:43
python函數(shù)概念理解
函數(shù)是可以實(shí)現(xiàn)一些特定功能的小方法或是小程序。在Python中有很多內(nèi)建函數(shù),當(dāng)然隨著學(xué)習(xí)的深入,我們可以學(xué)會(huì)創(chuàng)建對(duì)自己有用的函數(shù)。
2020-01-18 17:37:00
python常用的內(nèi)置函數(shù)和模塊
python數(shù)字包含常用的內(nèi)置函數(shù)和模塊,比如pow()、abs()、floor()、int()等函數(shù),以及math、random等模塊。
2023-03-10 10:10:08
python定義函數(shù)與調(diào)用函數(shù)的順序
定義函數(shù)與調(diào)用函數(shù)的順序 函數(shù)被定義后,本身是不會(huì)自動(dòng)執(zhí)行的,只有在被調(diào)用后,函數(shù)才會(huì)被執(zhí)行,得到相應(yīng)的結(jié)果。但是在 Python 中我們要注意一個(gè)關(guān)鍵點(diǎn),就是Python不允許前向引用,即在函數(shù)
2023-10-04 17:17:00
python提供的68個(gè)內(nèi)置函數(shù)詳解
? 內(nèi)置函數(shù)就是Python給你提供的,拿來直接用的函數(shù),比如print.,input等。 截止到python版本3.6.2 ,python一共提供了68個(gè)內(nèi)置函數(shù),具體如下 abs
2021-10-27 09:14:14
基于Python腳本的R語(yǔ)言的函數(shù)
本文介紹了采用創(chuàng)建一個(gè)Python腳本,用該腳本模仿R風(fēng)格的函數(shù)的方法來方便地進(jìn)行統(tǒng)計(jì)。 是用R語(yǔ)言還是用Python語(yǔ)言?這是一個(gè)曠日持久的爭(zhēng)論。在此,我們可以嘗試采用折中路線:創(chuàng)建一個(gè)
2020-10-12 09:33:38
python如何定義一個(gè)函數(shù)
一、Python3 函數(shù) 函數(shù)是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。 函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如 print
2023-11-14 11:26:18
一文詳解python調(diào)用函數(shù)
函數(shù)被定義后,本身是不會(huì)自動(dòng)執(zhí)行的,只有在被調(diào)用后,函數(shù)才會(huì)被執(zhí)行,得到相應(yīng)的結(jié)果。但是在 Python 中我們要注意一個(gè)關(guān)鍵點(diǎn),就是Python不允許前向引用,即在函數(shù)定義之前,不允許調(diào)用該函數(shù)。
2023-10-01 10:45:00
Python的函數(shù)裝飾器使用方法
Python中的裝飾器是一種可以裝飾其它對(duì)象的工具,簡(jiǎn)單地說,他們是修改其他函數(shù)的功能的函數(shù)。該工具本質(zhì)上是一個(gè)可調(diào)用的對(duì)象(callable),所以裝飾器一般可以由函數(shù)、類來實(shí)現(xiàn);
2020-01-21 11:36:00
Python支持遞歸函數(shù)
Python支持遞歸函數(shù)——即直接或間接地調(diào)用自身以進(jìn)行循環(huán)的函數(shù)。遞歸是頗為高級(jí)的話題,并且它在Python中相對(duì)少見。然而,它是一項(xiàng)應(yīng)該了解的有用的技術(shù),因?yàn)樗试S程序遍歷擁有任意的、不可預(yù)知的形狀的結(jié)構(gòu)。遞歸甚至是簡(jiǎn)單循環(huán)和迭代的替換,盡管它不一定是最簡(jiǎn)單的或最高效的一種。
2023-02-21 14:28:25
Python函數(shù)詳解
在 Python 中,函數(shù)是一段可重復(fù)使用的代碼塊,可以接受一些輸入(即函數(shù)參數(shù)),并根據(jù)輸入執(zhí)行某些操作。函數(shù)可以幫助我們組織代碼、減少重復(fù)代碼、實(shí)現(xiàn)模塊化設(shè)計(jì),并提高代碼的可讀性和可維護(hù)性。
2023-04-19 15:47:22
python函數(shù)返回多個(gè)參數(shù)
函數(shù)是程序設(shè)計(jì)中的一個(gè)重要概念,在很多編程語(yǔ)言中都存在。函數(shù)可以接受輸入數(shù)據(jù),并且根據(jù)輸入數(shù)據(jù)進(jìn)行一系列操作,最后可以返回一個(gè)或多個(gè)結(jié)果。Python是一種非常流行的編程語(yǔ)言,也支持函數(shù)返回多個(gè)參數(shù)
2023-11-21 16:37:27
python匿名函數(shù)的使用
python匿名函數(shù)的使用 匿名函數(shù)(英語(yǔ):anonymous function)是指一類無(wú)需定義標(biāo)識(shí)符(函數(shù)名)的函數(shù)。通俗來說呢,就是它可以讓我們的函數(shù),可以不需要函數(shù)名。 正常情況下,我們定義
2022-03-02 16:42:09
進(jìn)階必備的68個(gè)Python 內(nèi)置函數(shù)分析
來源: pypypypy 內(nèi)置函數(shù)就是Python給你提供的,拿來直接用的函數(shù),比如print.,input等。 截止到python版本3.6.2 ,python一共提供了68個(gè)內(nèi)置函數(shù),具體如下
2021-11-01 10:18:24
Python 函數(shù)參數(shù)分類
今天給大家分享一下自己整理的一篇 Python 參數(shù)的內(nèi)容,內(nèi)容非常的干,全文通過案例的形式來理解知識(shí)點(diǎn),自認(rèn)為比網(wǎng)上 80% 的文章講的都要明白,如果你是入門不久的 python 新手,相信本篇
2023-10-21 10:45:26
Python常用函數(shù)大全
在 Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認(rèn)識(shí)這些神器,讓你的開發(fā)生活瞬間輕松不少!
2024-10-27 17:20:05
sort函數(shù)python用法
sort()函數(shù)是Python中的內(nèi)置函數(shù)之一,用于對(duì)可迭代對(duì)象進(jìn)行排序??傻鷮?duì)象包括列表、元組和字符串等。sort()函數(shù)是一個(gè)靈活而強(qiáng)大的函數(shù),在數(shù)據(jù)分析、算法實(shí)現(xiàn)等方面有著廣泛
2023-11-21 15:15:14
python中各種函數(shù)的用法
Python中有很多種不同類型的函數(shù),它們?cè)诮鉀Q各種問題和完成不同任務(wù)時(shí)起著重要的作用。下面我將詳細(xì)介紹幾種常用的函數(shù),包括內(nèi)置函數(shù)、自定義函數(shù)、匿名函數(shù)以及高階函數(shù)等。 內(nèi)置函數(shù): print
2023-11-23 15:48:51
推薦一個(gè)Python超級(jí)好用的內(nèi)置函數(shù)lambda
在Python當(dāng)中,我們經(jīng)常使用lambda關(guān)鍵字來聲明一個(gè)匿名函數(shù),所謂地匿名函數(shù),通俗地來講就是沒有名字的函數(shù)。
2022-09-13 18:09:10
python的format函數(shù)怎么用
Python中的format()函數(shù)是用于格式化字符串的內(nèi)置函數(shù)。它允許我們將變量的值插入到字符串中,并對(duì)字符串進(jìn)行格式化以滿足特定的需求。format()函數(shù)使用大括號(hào){}作為占位符來指示我們希望
2023-11-22 09:44:01
python高階函數(shù)詳解
python高階函數(shù) 1. map 函數(shù) map 函數(shù),它接收兩個(gè)參數(shù),第一個(gè)參數(shù)是一個(gè)函數(shù)對(duì)象(當(dāng)然也可以是一個(gè)lambda表達(dá)式),第二個(gè)參數(shù)是一個(gè)序列。 它可以實(shí)現(xiàn)怎樣的功能呢,我舉個(gè)例子你
2022-03-02 16:47:12
Python系列學(xué)習(xí)筆記之函數(shù)注解
在Python 3.0中,可以給函數(shù)對(duì)象附加注解信息。這些信息會(huì)附加到函數(shù)對(duì)象的__annotations__屬性。 如下是一個(gè)不帶注解的函數(shù),它編寫為帶有3個(gè)參數(shù)并且返回一個(gè)結(jié)果:
2023-02-21 10:34:30
python中open函數(shù)的用法詳解
python中open函數(shù)的用法詳解 Python中的open()函數(shù)用于打開文件。它接受文件名和模式作為參數(shù),并返回一個(gè)文件對(duì)象。文件對(duì)象可用于讀取、寫入和管理文件。 open()函數(shù)的基本語(yǔ)法
2024-01-30 15:31:09