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