吃透Python函數(shù)從基礎(chǔ)語法到實(shí)戰(zhàn)技巧(最新推薦)
在Python的編程世界里,函數(shù)是讓代碼變得模塊化、可復(fù)用、易維護(hù)的核心工具。今天我就結(jié)合自己的學(xué)習(xí)筆記,帶你從基礎(chǔ)到進(jìn)階,徹底搞懂Python函數(shù)的方方面面。
一、為什么函數(shù)是Python程序員的“必修課”?
想象一下,如果沒有函數(shù),你每次計(jì)算圓的面積都要寫一遍 3.14 * r * r,每次處理字符串都要重復(fù)寫相同的判斷邏輯。這樣不僅代碼冗余,還容易出錯(cuò)。
函數(shù)的本質(zhì),就是把一段實(shí)現(xiàn)特定功能的代碼“打包”起來,起個(gè)名字,之后在需要的地方直接調(diào)用。它就像一個(gè)生產(chǎn)流水線:你輸入原料(參數(shù)),它經(jīng)過加工(函數(shù)體),最后輸出產(chǎn)品(返回值)。
學(xué)會(huì)使用函數(shù),你寫的代碼會(huì)變得更簡潔,邏輯也更清晰。
二、函數(shù)的創(chuàng)建
1. 函數(shù)的定義
def 函數(shù)名(參數(shù)):
代碼塊
return 返回值說明:
• def是定義函數(shù)的專屬保留字,不能省略或?qū)戝e(cuò)。
• 函數(shù)名的命名規(guī)則和變量一致(只能由字母、數(shù)字、下劃線組成,不能以數(shù)字開頭,區(qū)分大小寫)。
• 參數(shù)可根據(jù)函數(shù)功能選擇是否設(shè)置,即使定義了參數(shù),調(diào)用時(shí)也可結(jié)合需求靈活傳參(如默認(rèn)參數(shù)、可變參數(shù)等)。
• 函數(shù)的代碼塊必須縮進(jìn),這是Python語法的強(qiáng)制要求。
• return用于返回結(jié)果,無返回需求時(shí)可省略,此時(shí)函數(shù)默認(rèn)返回None。
def fun1():
for i in range(10):
print(i, end=" ")注意:Python中函數(shù)僅定義不會(huì)執(zhí)行內(nèi)部代碼,只有通過函數(shù)名()的方式調(diào)用函數(shù),函數(shù)體的代碼才會(huì)被執(zhí)行。
2. 函數(shù)的調(diào)用
定義函數(shù)后,就可以通過 函數(shù)名(參數(shù)) 的方式調(diào)用它:
?def fun1():
for i in range(10):
print(i, end=" ")
fun1()3.函數(shù)的復(fù)用
定義函數(shù)的最大優(yōu)點(diǎn)在于如果需要經(jīng)常使用某些功能,將這些功能創(chuàng)建成函數(shù),在使用時(shí)只需要調(diào)用該函數(shù)即可,不需要重復(fù)編寫復(fù)雜的代碼塊。
def fun3(n):
b = 1
for i in range(1, n+1):
b = int(i)* b
return b
b = fun3(7) + fun3(8) + fun3(9)
print(b)4.Return返回值
• 返回?cái)?shù)據(jù)到調(diào)用函數(shù)。
def fun2():
ls = ['張三', '李四']
a = len(ls)
return a
print(fun2())• 定義函數(shù)中不帶return語句。當(dāng)定義函數(shù)的代碼塊全部執(zhí)行完畢后,調(diào)用函數(shù)的代碼將默認(rèn)按收到一個(gè)空值,即None。
def fun1():
for i in range(10):
print(i, end=' ') # 循環(huán)打印0-9,end=' '讓輸出不換行
# 函數(shù)未寫return語句,默認(rèn)返回None
print(fun1()) # 先執(zhí)行fun1()的打印,再打印fun1()的返回值None• 定義函數(shù)中帶return語句且返回多個(gè)值。
def fun2():
ls = ['張三', '李四']
a = len(ls)
b = ls.pop()
return a, b
print(fun2())• 定義函數(shù)中帶return語句位于末尾行且返回多個(gè)值。
def fun2():
ls = ['張三', '李四']
a = len(ls)
b = ls.pop()
if a == 2:
return b
else:
return a, b
print('hello world')
print(fun2())三、參數(shù)的藝術(shù):靈活傳遞數(shù)據(jù)
1. 形參與實(shí)參
• 形參(形式參數(shù)):定義函數(shù)時(shí)括號(hào)里的變量,比如上面的 radius 和 pi,它只是一個(gè)占位符。
• 實(shí)參(實(shí)際參數(shù)):調(diào)用函數(shù)時(shí)填入的具體值,比如 calculate_circle_area(5) 里的 5,它會(huì)被賦值給對(duì)應(yīng)的形參。
def fun3(n):
b = 1
for i in range(1, n+1):
b = int(i) * b
return b
a = input("請(qǐng)輸入一個(gè)數(shù)字:")
print(a, '的階乘:', fun3(int(a)))
2. 默認(rèn)參數(shù)
定義函數(shù)中的某些參數(shù)會(huì)填入相同的數(shù)據(jù),這時(shí)可以給形參設(shè)置默認(rèn)值,提前給參數(shù)設(shè)置一個(gè)數(shù)據(jù)。
def circle_calc(r, pi=3.14):
return pi * r * r
a=circle_s(3)
b=circle_s(r=5.,pi=3.14159)
print(a,b)3. 可變參數(shù)
當(dāng)不確定要接收多少個(gè)參數(shù)時(shí),可以用可變參數(shù):
• 可變參數(shù)的形參開頭使用*開頭。
• 可變參數(shù)必須位于必填參數(shù)的右邊以保證必填參數(shù)先接收到數(shù)據(jù),再將剩余的數(shù)據(jù)傳遞給可變參數(shù)。
• 可變參數(shù)以元組的形式接收數(shù)據(jù)。
def fun3(a, *b): # *b表示可變參數(shù),接收任意數(shù)量的位置參數(shù),打包為元組
print(b)
c = 0
for i in b:
c += a * i
return c
print(fun3(3, 1, 2, 3)) # 調(diào)用時(shí)a=3,*b接收1、2、3,打包為元組(1,2,3)4. 關(guān)鍵字參數(shù)
• 關(guān)鍵字參數(shù)的形參使用**開頭。
• 關(guān)鍵字可變參數(shù)必須位于必選參數(shù)的右邊,確保必選參數(shù)先接收數(shù)據(jù)。
• 關(guān)鍵字參數(shù)以字典的形式接收數(shù)據(jù)。
• 傳遞給關(guān)鍵字參數(shù)的數(shù)據(jù)包含鍵和值,其中鍵和值使用等號(hào)連接。
def fun4(a,**b):
print(a, '課程考試成績:')
print(b)
fun4('Python', zhangsan=90, list=95)寫在最后
函數(shù)不是Python特有的概念,但它在Python中的靈活應(yīng)用,讓代碼的組織和復(fù)用變得格外高效。從簡單的函數(shù)定義,到參數(shù)的靈活傳遞,再到 return 的巧妙運(yùn)用,每一個(gè)知識(shí)點(diǎn)都是構(gòu)建復(fù)雜程序的基礎(chǔ)。
到此這篇關(guān)于吃透Python函數(shù):從基礎(chǔ)語法到實(shí)戰(zhàn)技巧的文章就介紹到這了,更多相關(guān)Python函數(shù)語法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Keras實(shí)現(xiàn)簡單線性回歸模型操作
這篇文章主要介紹了使用Keras實(shí)現(xiàn)簡單線性回歸模型操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
《Python之禪》中對(duì)于Python編程過程中的一些建議
這篇文章主要介紹了《Python之禪》中對(duì)于Python編程過程中的一些建議,需要的朋友可以參考下2015-04-04
Python把三個(gè)字典合并成一個(gè)字典的常用方法
在Python開發(fā)中,字典合并是一個(gè)高頻需求,無論是配置管理、數(shù)據(jù)清洗還是API響應(yīng)處理,掌握高效的字典合并技巧能顯著提升代碼質(zhì)量,本文將系統(tǒng)解析Python中合并三個(gè)字典的四種核心方法,附實(shí)戰(zhàn)代碼與避坑指南,需要的朋友可以參考下2025-11-11
pyhton中__pycache__文件夾的產(chǎn)生與作用詳解
這篇文章主要介紹了pyhton中__pycache__文件夾的產(chǎn)生與作用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Elasticsearches之python使用及Django與Flask集成示例
這篇文章主要為大家介紹了Elasticsearches之python使用及Django與Flask集成示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
Python實(shí)現(xiàn)解析路徑字符串并獲取每個(gè)文件夾名稱
在?Python?中,解析路徑字符串并獲取每個(gè)文件夾的名稱是一項(xiàng)常見的任務(wù),這篇文章主要為大家詳細(xì)介紹了Python解析路徑字符串的具體方法,希望對(duì)大家有所幫助2024-04-04

