課程
/后端開發(fā)
/Python
/初識(shí)Python
例題中的fact中n,沒(méi)見(jiàn)定義。但是小數(shù) 和 負(fù)數(shù),就會(huì)報(bào)錯(cuò),問(wèn)下是內(nèi)部定義了?
2016-04-17
源自:初識(shí)Python 7-5
正在回答
首先 函數(shù)的參數(shù) n 不需要定義, ?包含兩個(gè)意思:
第一,它跟Python 的其他變量一樣,不需要指定數(shù)據(jù)類型。
第二, n 是 函數(shù)的形參, 初始化的時(shí)候 不必須 給定 值。
其次, 之所以 傳 小數(shù)和負(fù)數(shù)的 時(shí)候回報(bào)錯(cuò), 這是 遞歸調(diào)用中 最常見(jiàn)的一種情況,代碼舉例說(shuō)明:
def?fact(n): ????if?n==1: ????????return?1 ????return?n?*?fact(n?-?1) ##?調(diào)用的時(shí)候如果傳入?小數(shù)或者負(fù)數(shù)?,?則造成?“無(wú)限遞歸”?或者說(shuō)是?“死遞歸”?,?因?yàn)?不論是小數(shù), ##?還是負(fù)數(shù),?都打不到?if?n?==?1:?return?1??的條件,?所以會(huì)?無(wú)限遞歸下去?就引發(fā)了如下錯(cuò)誤: ##?RecursionError:?maximum?recursion?depth?exceeded?in?comparison ##?遞歸錯(cuò)誤:??????超出最大遞歸深度
魔luck 提問(wèn)者
舉報(bào)
學(xué)python入門視頻教程,讓你快速入門并能編寫簡(jiǎn)單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-04-17
首先 函數(shù)的參數(shù) n 不需要定義, ?包含兩個(gè)意思:
第一,它跟Python 的其他變量一樣,不需要指定數(shù)據(jù)類型。
第二, n 是 函數(shù)的形參, 初始化的時(shí)候 不必須 給定 值。
其次, 之所以 傳 小數(shù)和負(fù)數(shù)的 時(shí)候回報(bào)錯(cuò), 這是 遞歸調(diào)用中 最常見(jiàn)的一種情況,代碼舉例說(shuō)明: