python中def意思是聲明函數(shù)。Python 使用def 開始函數(shù)定義,緊接著是函數(shù)名,括號(hào)內(nèi)部為函數(shù)的參數(shù),內(nèi)部為函數(shù)的 具體功能實(shí)現(xiàn)代碼,如果想要函數(shù)有返回值, 在 expressions 中的邏輯代碼中用 return 返回。expressions實(shí)例def function():print('This is a function')a = 1+2print(a)function 的函數(shù),函數(shù)沒(méi)有不接受參數(shù),所以括號(hào)內(nèi)部為空,緊接著就是 函數(shù)的功能代碼。如果執(zhí)行該腳本,發(fā)現(xiàn)并沒(méi)有輸出任何輸出,因?yàn)槲覀冎欢x了函數(shù),而并沒(méi)有執(zhí)行函數(shù)。 這時(shí)我們?cè)?Python 命令提示符中輸入函數(shù)調(diào)用 function(), 注意這里調(diào)用函數(shù)的括號(hào)不能省略。那么函數(shù)內(nèi)部的功能代碼將會(huì)執(zhí)行,輸出結(jié)果:This is a function。
創(chuàng)新互聯(lián)是專業(yè)的石城網(wǎng)站建設(shè)公司,石城接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行石城網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
假設(shè)兩個(gè)數(shù)帶進(jìn)去替換x和n就好理解了,比如power(2,3)計(jì)算2的3次方
按照代碼
s=1 n0(我們假設(shè)了n為3)
然后執(zhí)行while n0 里的n=n-1 n變成2
再執(zhí)行s(這個(gè)是新的s)=s(這個(gè)是舊的s)*x 新s變?yōu)?(我們上面假設(shè)x為2)
然后返回s(下次使用時(shí)就變成了舊s)
接著判斷n,依舊大于0 ,執(zhí)行n=n-1 n變成1 執(zhí)行s=s*x 新s變?yōu)?,然后返回s
接著判斷n,依舊大于0,執(zhí)行n=n-1 n變成0(意味著這次結(jié)束就將跳出循環(huán))執(zhí)行s=s*x
新s變成8
循環(huán)結(jié)束,得到結(jié)果。2的3次方是8
不知道還有什么地方不明白
1.如果你只是問(wèn)
x和n有啥區(qū)別。
那標(biāo)準(zhǔn)答案就是:
除了字母不一樣,其他沒(méi)啥區(qū)別。都是某個(gè)函數(shù)中的某個(gè)參數(shù)(變量)而已。
而變量名,是可以(在保證符號(hào)語(yǔ)法要求的前提下)隨便寫的。
比如你的cube函數(shù),就可以改為:
def cube(x):
result=x**3
return result
而更加好的寫法是:
def cube(inputIntValue):
threeCubedResult =inputIntValue**3;
return threeCubedResult
這樣才叫做代碼的可讀性好一些。
2.從你代碼本意看,就是
當(dāng)輸入數(shù)據(jù)是3的倍數(shù)時(shí),就返回該數(shù)的3次方
否則就返回False
而且代碼也是如你所愿的去運(yùn)行了。
你還有啥疑問(wèn)???
3.你說(shuō)的
argument
parameter
簡(jiǎn)單說(shuō):
都是個(gè)英文單詞,都可以表示函數(shù)的參數(shù)。
用哪個(gè)都可以。
4.反正是說(shuō)了半天,沒(méi)看到你到底想問(wèn)啥。。。。
=======
貌似終于看懂你問(wèn)的了。。。
簡(jiǎn)答:
用x
詳解:
用x還是n
主要是:
你本身對(duì)于函數(shù),參數(shù)調(diào)用,的概念,完全搞混淆了。
簡(jiǎn)單解釋就是:
你先去搞懂函數(shù)變量的概念
然后就自動(dòng)懂了如何調(diào)用函數(shù),如何傳遞參數(shù)
此處就是:
def by_three(x):
if x%3==0:
return cube(x)
else:
return False
中的x,是函數(shù)by_three的一個(gè)變量
此變量的值,是輸入的參數(shù)決定的
如果改為n,那么就是:
代碼非法,
因?yàn)楫?dāng)前函數(shù)by_three內(nèi),根本就沒(méi)有n這個(gè)變量
所以無(wú)法使用。
再總結(jié)為:
函數(shù)實(shí)現(xiàn)的時(shí)候,你的函數(shù)參數(shù)的名字和你被調(diào)用的時(shí)候,沒(méi)有半毛錢關(guān)系。
即
cube函數(shù)實(shí)現(xiàn)時(shí),用的參數(shù)名字叫做n,而by_three中調(diào)用cube的時(shí)候?qū)懙膞
兩者沒(méi)有關(guān)系。
有關(guān)系的是:
在別的函數(shù)(by_three)中,調(diào)用被調(diào)用的那個(gè)函數(shù)(cube)時(shí),確保傳遞的參數(shù)類型是要匹配的,一致的(此處都是int型)
不知道說(shuō)清楚了沒(méi)。。。