def factorial(n):
if not isinstance(n, int):
raise TypeError('型態錯誤!')
if n < 0:
raise ValueError('值錯誤')
if n==1:
return 1
else:
return n * factorial(n-1)
#-----------------------------------
print(factorial(10))
第11行,factorial(n-1)呼叫自己,但是傳遞的引數遞減1。
執行結果:
3628800
說明
(2) 計算費氏數列的第n個值
以下是一個例子:
def fibonacci(n):
if not isinstance(n, int):
raise TypeError('型態錯誤!')
if n < 0:
raise ValueError('值錯誤')
if n<=1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
#-----------------------------------
print(fibonacci(9))