Python學習 對函式fact(n)編寫doctest並執行
阿新 • • 發佈:2019-02-03
宣告:
我寫此文的目的是幫助和我一樣在廖雪峰老師官網上學習Python3的同學更好的理解和學習Python的知識,所以本博文及後續文章會跟著我的學習進度來走,主要內容是廖雪峰老師官網Python資料中每節知識點後的複習題的答案和解析,有一些是我自己原創的,有一些是網上整理的大神寫的簡潔但對新手並不是很明瞭的答案,我會盡可能的給出我的解析。
題目:對函式fact(n)編寫doctest並執行:
答案:
def fact(n):
'''
Function to get n!
Example:
>>> fact(1)
1
>>> fact(2)
2
>>> fact(3)
6
>>> fact('a')
Traceback(most recent call last)
...
KeyError: 'a'
'''
if n < 1 :
raise ValueError()
if n == 1 :
return 1
return n * fact(n - 1)
if __name__ == 'main' :
import doctest
doctest.testmod()
print(fact(5))
解析:
很簡單的題目,答案程式碼也很好寫,在答案最後一行我加了一個print() ,這個無礙,寫不寫都沒關係,需要注意到的是在寫 Doctest 時,‘>>>’和 ‘fact(1)’之間要有一個空格,否則會出錯。還有在廖雪峰老師官網本節知識點中的評論留言下廖老師有一個提醒,希望大家能注意到。