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

