# -*- coding: utf-8 -*-
def fact(n):
'''
Calculate 1*2*...*n
>>> fact(1)
1
>>> fact(10)
3628800
>>> fact(-1)
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\doctest.py", line 1330, in __run
compileflags, 1), test.globs)
File "<doctest __main__.fact[2]>", line 1, in <module>
fact(-1)
File "C:\Users\ZAN\AppData\Local\Temp\learn_python_6q__n9_0_py\test_3.py", line 14, in fact
raise ValueError()
ValueError
'''
if n < 1:
raise ValueError()
if n == 1:
return 1
return n * fact(n - 1)
if __name__ == '__main__':
import doctest
doctest.testmod()
结果输出结果有错误
File "C:\Users\ZAN\AppData\Local\Temp\learn_python_6q__n9_0_py\test_6.py", line 19
'''
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 338-339: truncated \UXXXXXXXX escape
最后发现问题出现再转义符上,window 读取文件可以用\,但是在字符串中\是被当作转义字符来使用。因此只需要对文档中的路径进行修改。
File "C:\\Users\\ZAN\\AppData\\Local\\Temp\\learn_python_6q__n9_0_py\\test_3.py", line 14, in fact
问题即可解决。