Python函數(shù)入門(mén)示例詳解(定義+調(diào)用+參數(shù))
作為Python入門(mén)的核心知識(shí)點(diǎn),函數(shù)是實(shí)現(xiàn)代碼復(fù)用、邏輯解耦的關(guān)鍵。很多新手剛接觸函數(shù)時(shí),分不清“定義”和“調(diào)用”的區(qū)別,對(duì)參數(shù)傳遞更是一頭霧水,導(dǎo)致寫(xiě)出來(lái)的函數(shù)要么報(bào)錯(cuò),要么邏輯混亂。
今天就把Python函數(shù)拆解成“定義-調(diào)用-參數(shù)-返回值”四個(gè)核心模塊,搭配極簡(jiǎn)代碼示例,新手跟著練,10分鐘就能掌握函數(shù)的基礎(chǔ)用法,輕松寫(xiě)出可復(fù)用的代碼~
一、函數(shù)的核心概念:為什么要用函數(shù)?
函數(shù)就像“預(yù)先封裝好的工具”——把一段常用的代碼邏輯包裹起來(lái),需要時(shí)直接“調(diào)用”,不用重復(fù)寫(xiě)相同代碼。
比如:計(jì)算兩個(gè)數(shù)的和,寫(xiě)一次求和函數(shù),后續(xù)求任意兩個(gè)數(shù)的和,直接調(diào)用即可,無(wú)需重復(fù)寫(xiě)a + b。
二、函數(shù)的基礎(chǔ):定義與調(diào)用(最核心?。?/h2>
1. 函數(shù)定義(造工具)
語(yǔ)法格式:
def 函數(shù)名(參數(shù)列表):
"""函數(shù)說(shuō)明文檔(可選,建議寫(xiě))"""
函數(shù)體(要執(zhí)行的代碼)
return 返回值(可選)
def:定義函數(shù)的關(guān)鍵字(必須有);- 函數(shù)名:符合變量命名規(guī)范(小寫(xiě)+下劃線),見(jiàn)名知意;
- 參數(shù)列表:調(diào)用函數(shù)時(shí)需要傳入的數(shù)據(jù)(可選);
- 函數(shù)體:核心邏輯代碼(縮進(jìn)4個(gè)空格,和def對(duì)齊);
return:返回函數(shù)執(zhí)行結(jié)果(可選,無(wú)return則返回None)。
2. 函數(shù)調(diào)用(用工具)
語(yǔ)法格式:函數(shù)名(傳入?yún)?shù))
調(diào)用才會(huì)執(zhí)行函數(shù)體代碼,只定義不調(diào)用,函數(shù)永遠(yuǎn)不會(huì)運(yùn)行。
示例1:無(wú)參數(shù)、無(wú)返回值的函數(shù)
# 定義函數(shù):打印歡迎語(yǔ)
def print_welcome():
"""打印歡迎信息"""
print("歡迎學(xué)習(xí)Python函數(shù)!")
# 調(diào)用函數(shù)(必須調(diào)用才會(huì)執(zhí)行)
print_welcome() # 輸出:歡迎學(xué)習(xí)Python函數(shù)!示例2:有參數(shù)、有返回值的函數(shù)
# 定義函數(shù):計(jì)算兩個(gè)數(shù)的和
def add_num(a, b):
"""計(jì)算兩個(gè)數(shù)的和,返回結(jié)果"""
result = a + b
return result # 返回求和結(jié)果
# 調(diào)用函數(shù),接收返回值
sum1 = add_num(5, 3)
print(sum1) # 輸出:8
sum2 = add_num(10.5, 20.3)
print(sum2) # 輸出:30.8三、函數(shù)的靈魂:參數(shù)傳遞(新手必懂4種參數(shù))
參數(shù)是函數(shù)和外部交互的“接口”,新手重點(diǎn)掌握4種常用參數(shù),覆蓋90%的使用場(chǎng)景。
1. 位置參數(shù)(最常用)
調(diào)用時(shí)按參數(shù)定義的順序傳入值,數(shù)量必須和定義一致。
# 定義:參數(shù)a、b為位置參數(shù)
def print_info(name, age):
print(f"姓名:{name},年齡:{age}")
# 調(diào)用:按順序傳入“張三”(對(duì)應(yīng)name)、20(對(duì)應(yīng)age)
print_info("張三", 20) # 輸出:姓名:張三,年齡:20
# ? 錯(cuò)誤:參數(shù)數(shù)量不一致(少傳/多傳都會(huì)報(bào)錯(cuò))
# print_info("李四") # 報(bào)錯(cuò):缺少1個(gè)位置參數(shù)2. 默認(rèn)參數(shù)
定義時(shí)給參數(shù)賦值,調(diào)用時(shí)可省略該參數(shù)(使用默認(rèn)值)。
# 定義:age設(shè)置默認(rèn)值18
def print_info(name, age=18):
print(f"姓名:{name},年齡:{age}")
# 調(diào)用1:省略age,使用默認(rèn)值18
print_info("王五") # 輸出:姓名:王五,年齡:18
# 調(diào)用2:傳入age,覆蓋默認(rèn)值
print_info("趙六", 22) # 輸出:姓名:趙六,年齡:22?? 避坑:默認(rèn)參數(shù)必須放在位置參數(shù)后面!
3. 關(guān)鍵字參數(shù)
調(diào)用時(shí)指定參數(shù)名,無(wú)需按順序傳入,適合參數(shù)多的場(chǎng)景。
# 定義:3個(gè)位置參數(shù)
def print_info(name, age, gender):
print(f"姓名:{name},年齡:{age},性別:{gender}")
# 調(diào)用:指定參數(shù)名,順序可亂
print_info(gender="男", name="孫七", age=25) # 輸出:姓名:孫七,年齡:25,性別:男4. 可變長(zhǎng)度參數(shù)(*args、**kwargs)
處理“不確定數(shù)量的參數(shù)”,新手常用在批量處理數(shù)據(jù)場(chǎng)景。
# *args:接收任意數(shù)量的位置參數(shù),打包成元組
def sum_all(*args):
total = 0
for num in args:
total += num
return total
print(sum_all(1,2,3)) # 輸出:6
print(sum_all(10,20,30,40)) # 輸出:100
# **kwargs:接收任意數(shù)量的關(guān)鍵字參數(shù),打包成字典
def print_detail(**kwargs):
for key, value in kwargs.items():
print(f"{key}:{value}")
print_detail(name="周八", age=30, address="北京")
# 輸出:
# 姓名:周八
# 年齡:30
# 地址:北京四、函數(shù)的返回值:return的用法
return會(huì)終止函數(shù)執(zhí)行(后面的代碼不會(huì)運(yùn)行);- 一個(gè)函數(shù)可以返回多個(gè)值(用逗號(hào)分隔,返回時(shí)自動(dòng)打包成元組)。
# 返回單個(gè)值
def get_max(a, b):
if a > b:
return a
else:
return b
print(get_max(10, 20)) # 輸出:20
# 返回多個(gè)值
def get_info():
name = "吳九"
age = 28
return name, age # 等價(jià)于返回 (name, age)
name, age = get_info() # 解包接收
print(name, age) # 輸出:吳九 28五、新手避坑指南
- 函數(shù)名不能重復(fù)(重復(fù)定義會(huì)覆蓋之前的函數(shù));
- 縮進(jìn)錯(cuò)誤:函數(shù)體必須縮進(jìn)(4個(gè)空格),否則報(bào)錯(cuò);
- 參數(shù)傳遞:位置參數(shù)必須在關(guān)鍵字參數(shù)前面;
- return位置:return寫(xiě)在循環(huán)/條件里時(shí),注意是否提前終止函數(shù)。
最后
函數(shù)的核心是“復(fù)用”和“解耦”,新手先掌握“定義-調(diào)用-位置參數(shù)-返回值”這四個(gè)基礎(chǔ)點(diǎn),再逐步學(xué)習(xí)默認(rèn)參數(shù)、可變參數(shù)。練習(xí)時(shí)可以把之前寫(xiě)的代碼(比如文本統(tǒng)計(jì)、密碼生成)改造成函數(shù),加深理解。
到此這篇關(guān)于Python函數(shù)入門(mén)詳解(定義+調(diào)用+參數(shù))的文章就介紹到這了,更多相關(guān)Python函數(shù)入門(mén)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python接口自動(dòng)化?之用例讀取方法總結(jié)
這篇文章主要介紹了Python接口自動(dòng)化?之用例讀取方法總結(jié),在軟件測(cè)試中,為項(xiàng)目編寫(xiě)接口自動(dòng)化用例已成為測(cè)試人員常駐的測(cè)試工作。本文以python為例,基于筆者曾使用過(guò)的三種用例數(shù)據(jù)讀取方法:xlrd、pandas、yaml,下面簡(jiǎn)要地介紹下它們的使用方法及簡(jiǎn)單分析2022-06-06
基于Python開(kāi)發(fā)的學(xué)習(xí)通簽到數(shù)據(jù)統(tǒng)計(jì)工具
本文介紹的項(xiàng)目是一款面向?qū)W習(xí)通簽到數(shù)據(jù)的可視化統(tǒng)計(jì)工具,核心目標(biāo)是解決學(xué)習(xí)通導(dǎo)出的簽到表格手動(dòng)統(tǒng)計(jì)效率低、易出錯(cuò)的問(wèn)題,下面將詳細(xì)講解學(xué)習(xí)通簽到統(tǒng)計(jì)工具開(kāi)發(fā)過(guò)程以及Python代碼完整實(shí)現(xiàn),需要的朋友可以參考下2026-01-01
如何將你的應(yīng)用遷移到Python3的三個(gè)步驟
這篇文章主要介紹了如何將你的應(yīng)用遷移到Python3的三個(gè)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Python時(shí)間管理黑科技之datetime函數(shù)詳解
在Python中,datetime模塊是處理日期和時(shí)間的標(biāo)準(zhǔn)庫(kù),它提供了一系列功能強(qiáng)大的函數(shù)和類,用于處理日期、時(shí)間、時(shí)間間隔等,本文將深入探討datetime模塊的使用方法,感興趣的可以了解下2023-08-08
使用pygame實(shí)現(xiàn)垃圾分類小游戲功能(已獲校級(jí)二等獎(jiǎng))
這篇文章主要介紹了使用pygame實(shí)現(xiàn)垃圾分類小游戲功能(已獲校級(jí)二等獎(jiǎng)),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
python如何實(shí)現(xiàn)API的調(diào)用詳解
Web?API是網(wǎng)站的一部分,用于與使用非常具體的URL請(qǐng)求特定信息的程序交互,下面這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)API的快速調(diào)用指南,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05

