定義函數(shù):def()語句
語法:
def 函數(shù)名(參數(shù)1,參數(shù)2,.....,參數(shù)n):
函數(shù)體
return 語句
舉例:
def hello(name):
print(name+"Good morning!")
return
上面我們定義一個名字為hello的函數(shù),括號內(nèi)部是函數(shù)接收的參數(shù)name,緊接著就是函數(shù)的功能代碼。
調(diào)用函數(shù):輸入函數(shù)名和參數(shù)對應(yīng)的值
def hello(name):
print(name+"Good morning!")
return
hello("lily")
多次調(diào)用
hello("lily,")
hello("Mike,")
參數(shù)
- 位置參數(shù)
def menu(appetizer,course):
print("一份開胃菜:"+appetizer)
print("一份主食"+course)
menu("手拍黃瓜","大米飯")
這里的"手拍黃瓜"和"大米飯"是對應(yīng)參數(shù)appetizer和course的位置順序傳遞的,所以被叫作位置參數(shù),這也是最常見的參數(shù)類型。
- 默認(rèn)參數(shù)
注意: 默認(rèn)參數(shù)必須放在位置參數(shù)之后
def menu(appetizer,course,dessert="西瓜"):
print("一份開胃菜:"+appetizer)
print("一份主食:"+course)
print("一份甜品:"+dessert)
menu("手拍黃瓜","大米飯")
默認(rèn)將"西瓜"傳遞給dessert,調(diào)用時無須再傳遞。
但是默認(rèn)參數(shù)也會改變的,比如像下面python會自動將"銀耳羹"傳遞給參數(shù)dessert。
menu("手拍黃瓜","大米飯","銀耳羹")
- 不定長參數(shù):一個星號*加上參數(shù)名
def menu(*barbeque):
print(barbeque)
menu("烤茄子","烤大腸","烤玉米")
barbeque輸出的是數(shù)據(jù)類型是元組,可以用for循環(huán)來迭代輸出。代碼如下:
def menu(appetizer,course,dessert,*barbeque):
print("一份開胃菜:"+appetizer)
print("一份主菜:"+course)
print("一份甜品:"+dessert)
for i in barbeque:
print("一份烤串:"+i)
menu("手拍黃瓜","大米飯","西瓜","烤茄子","烤大腸","烤玉米")
return 返回值
return是返回值,當(dāng)你輸入?yún)?shù)給函數(shù),函數(shù)就會返回一個值給你。事實上每個函數(shù)都會有返回值。
def wqf_album(a):
if a==1:
return "太空人"
elif a==2:
return "冊頁一與一"
elif a==3:
return "馬拉美的星期二"
else:
return "敬請期待吳青峰第四張專輯!"
wqf_album(1)
- 1、如果不是立即要對函數(shù)返回值做操作,那么可以使用return語句保留返回值。
類似這種多個函數(shù)相互配合的代碼中,我們就會非常需要return語句,來幫我們先保留某個函數(shù)的返回值,等要用到的時候再調(diào)出來用。
def face(name):
return name+"!"
def body(congratulations):
return congratulations+"~"
face("吳青峰")
body("祈愿你永遠(yuǎn)平安安康,自在快樂")
print(face("吳青峰"),body("祈愿你永遠(yuǎn)平安安康,自在快樂"))
-
2、需要多次調(diào)用函數(shù)時,可以再定義一個目標(biāo)主函數(shù)main(),調(diào)用非主函數(shù)的返回值。
-
3、return可以接受一次多個返回,而且多個返回值的數(shù)據(jù)類型就是元組。
def face(name):
return name+"!"
def boby(congratulations):
return congratulations+"~"
def main(mylover,mybless):
return face(mylover),body(mybless)
print(main("吳青峰","祈愿你永遠(yuǎn)平安安康,自在快樂"))
print(main("anpu","也謝謝你愿意成為我們的歌手!"))
- 4、沒有return語句的函數(shù)會默認(rèn)返回None值。
def fun():
a = "I am wqf."
print(fun())
- 5、一旦函數(shù)內(nèi)部遇到return語句就會停止執(zhí)行并返回結(jié)果。
def fun():
return "I am wqf."
return "I am not wqf."
print(fun())
變量作用域
定義一個函數(shù)時,理解函數(shù)中變量的作用域
- 局部變量:在一個函數(shù)內(nèi)定義的變量僅能在函數(shù)內(nèi)部使用(局部作用域)。
- 全局變量:在所有函數(shù)之外賦值的變量,可以在程序的任何位置使用(全局作用域)。
x=wqf
def name():
x=wqf
print(x)
num()#調(diào)用函數(shù)內(nèi)部變量
print(x)#調(diào)用全局變量
當(dāng)變量處于被定義的函數(shù)內(nèi)時,就是局部變量,只能在這個函數(shù)內(nèi)被訪問;當(dāng)變量處于被定義的函數(shù)外時,就是全局變量,可以在程序中的任何位置被訪問。注意: 盡量局部變量與全局變量不要同一個命名。
- global語句,可以將局部變量轉(zhuǎn)變?yōu)槿肿兞俊?/li>
def name():
mylover = "wqf"
name()
print(mylover) #會報錯,不能在函數(shù)外部(全局作用域)使用函數(shù)內(nèi)的局部變量
mylover = 108
def name():
print(mylover)
name() #函數(shù)內(nèi)的局部作用域,可以訪問全局變量
def name():
global mylover
mylover = 108
name()
print(mylover) #global語句可以將局部變量聲明為全局變量
運行結(jié)果1:
運行結(jié)果2:文章來源:http://www.zghlxwxcb.cn/news/detail-782410.html
運行結(jié)果3:文章來源地址http://www.zghlxwxcb.cn/news/detail-782410.html
到了這里,關(guān)于【python基礎(chǔ)】—函數(shù)def()的定義與調(diào)用、參數(shù)、return返回值及變量作用域的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!