python def 定義函數(shù),調(diào)用函數(shù)方式
python def 定義函數(shù),調(diào)用函數(shù)方式
def sum_2_nums(a,b): #def 定義函數(shù) result = a+b print(’%d+%d=%d’%(a,b,result))num1 = int(input(’請(qǐng)輸入第一個(gè)數(shù)字:’))num2 = int(input(’請(qǐng)輸入第二個(gè)數(shù)字:’)) sum_2_nums(num1,num2) #調(diào)用函數(shù)
定義和調(diào)用的函數(shù),1:個(gè)數(shù)相同 ;2:順序 一 一對(duì)應(yīng)
這樣才能正確實(shí)現(xiàn)
補(bǔ)充知識(shí):python中l(wèi)ist作為全局變量無(wú)需global聲明的原因
發(fā)現(xiàn)一個(gè)問(wèn)題。
python中l(wèi)ist變量作為全局變量時(shí),在函數(shù)中可以直接修改。
而普通變量則需要先在函數(shù)中g(shù)lobal聲明,否則會(huì)報(bào)錯(cuò)。
例如:
a = 1
def fun():
global a
a = 2
而list:
b = [1,2]
def fun():
b[0] = 2
在函數(shù)中直接修改list則是可以的。
原因是:
普通變量如果在函數(shù)中賦值
a = 2
會(huì)有歧義。因?yàn)樗瓤梢允潜硎疽萌肿兞縜,也可以是創(chuàng)建一個(gè)新的局部變量,所以在python中,默認(rèn)它的行為是創(chuàng)建局部變量,除非顯式聲明global。
而對(duì)列表list變量進(jìn)行賦值
b[0] = 2
則不會(huì)有歧義。它是“明確的”,因?yàn)槿绻裝當(dāng)作是局部變量的話,它會(huì)報(bào)KeyError,所以它只能是引用全局的b,故不需要多此一舉顯式聲明global。
以上這篇python def 定義函數(shù),調(diào)用函數(shù)方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
