Python 斯芬克斯博士在现实世界中的用途或意义是什么?
斯芬克斯中博士的意义是什么?有人能用一个简单的例子来帮助我理解它的用法吗。这里有一个简单的例子(来自:Python 斯芬克斯博士在现实世界中的用途或意义是什么?,python,python-sphinx,restructuredtext,Python,Python Sphinx,Restructuredtext,斯芬克斯中博士的意义是什么?有人能用一个简单的例子来帮助我理解它的用法吗。这里有一个简单的例子(来自: “”“ 这是“示例”模块。 示例模块提供一个函数factorial()。例如, >>>阶乘(5) 120 """ def阶乘(n): “”“返回n的阶乘,精确整数>=0。 如果结果足够小,可以放入一个int,则返回一个int。 否则返回一个长的。 >>>[范围(6)内n的阶乘(n)] [1, 1, 2, 6, 24, 120] >>>[范围(6)内n的阶乘(长(n)] [1, 1, 2, 6,
“”“
这是“示例”模块。
示例模块提供一个函数factorial()。例如,
>>>阶乘(5)
120
"""
def阶乘(n):
“”“返回n的阶乘,精确整数>=0。
如果结果足够小,可以放入一个int,则返回一个int。
否则返回一个长的。
>>>[范围(6)内n的阶乘(n)]
[1, 1, 2, 6, 24, 120]
>>>[范围(6)内n的阶乘(长(n)]
[1, 1, 2, 6, 24, 120]
>>>阶乘(30)
265252859812191058630848000000L
>>>阶乘(30L)
265252859812191058630848000000L
>>>阶乘(-1)
回溯(最近一次呼叫最后一次):
...
ValueError:n必须大于等于0
浮点数的阶乘是可以的,但浮点数必须是一个精确的整数:
>>>阶乘(30.1)
回溯(最近一次呼叫最后一次):
...
ValueError:n必须是精确的整数
>>>阶乘(30.0)
265252859812191058630848000000L
它也不能大得离谱:
>>>阶乘(1e100)
回溯(最近一次呼叫最后一次):
...
溢出错误:n太大
"""
输入数学
如果不是n>=0:
提升值错误(“n必须大于等于0”)
如果数学。楼层(n)!=n:
raise VALUERROR(“n必须是精确整数”)
如果n+1==n:#捕捉像1e300这样的值
提升溢流阀错误(“n太大”)
结果=1
系数=2
虽然因子这里有一个简单的例子(来自):
“”“
这是“示例”模块。
示例模块提供一个函数factorial()。例如,
>>>阶乘(5)
120
"""
def阶乘(n):
“”“返回n的阶乘,精确整数>=0。
如果结果足够小,可以放入一个int,则返回一个int。
否则返回一个长的。
>>>[范围(6)内n的阶乘(n)]
[1, 1, 2, 6, 24, 120]
>>>[范围(6)内n的阶乘(长(n)]
[1, 1, 2, 6, 24, 120]
>>>阶乘(30)
265252859812191058630848000000L
>>>阶乘(30L)
265252859812191058630848000000L
>>>阶乘(-1)
回溯(最近一次呼叫最后一次):
...
ValueError:n必须大于等于0
浮点数的阶乘是可以的,但浮点数必须是一个精确的整数:
>>>阶乘(30.1)
回溯(最近一次呼叫最后一次):
...
ValueError:n必须是精确的整数
>>>阶乘(30.0)
265252859812191058630848000000L
它也不能大得离谱:
>>>阶乘(1e100)
回溯(最近一次呼叫最后一次):
...
溢出错误:n太大
"""
输入数学
如果不是n>=0:
提升值错误(“n必须大于等于0”)
如果数学。楼层(n)!=n:
raise VALUERROR(“n必须是精确整数”)
如果n+1==n:#捕捉像1e300这样的值
提升溢流阀错误(“n太大”)
结果=1
系数=2
虽然factor我自己没有使用过,但据我所知,它扩展了doctest
的功能。例如,它添加了testsetup
和testcleanup
指令,您可以将设置和拆卸逻辑放入这些指令中。使Sphinx能够在文档中排除该选项。我自己没有使用过它,但据我所知,它扩展了doctest的功能。例如,它添加了testsetup
和testcleanup
指令,您可以将设置和拆卸逻辑放入这些指令中。使Sphinx能够在文档中排除这些内容。Sphinx的doctest用于测试文档本身。换句话说,它允许自动验证文档的示例代码。虽然它还可以验证Python代码是否按预期工作,但Sphinx本身并不需要(您可以更轻松地使用标准库的doctest
模块)
因此,一个真实的场景(我发现自己经常遇到的场景)是这样的:一个新功能即将完成,所以我写了一些文档来介绍这个新功能。新文档包含一个或多个代码示例。在发布文档之前,我在Sphinx文档目录中运行make doctest
,以验证我为观众编写的代码示例是否实际有效。Sphinx的doctest用于测试文档本身。换句话说,它允许自动验证文档的示例代码。虽然它还可以验证Python代码是否按预期工作,但Sphinx本身并不需要(您可以更轻松地使用标准库的doctest
模块)
因此,一个真实的场景(我发现自己经常遇到的场景)是这样的:一个新功能即将完成,所以我写了一些文档来介绍这个新功能。新文档包含一个或多个代码示例。在发布文档之前,我在Sphinx文档目录中运行make doctest
,以验证我为读者编写的代码示例是否能够实际工作。我不想要这个示例。我想了解它的真实世界usageI不想要这个例子。我想了解它的实际用途请澄清你的问题。从表面上看,拥有显示使用情况的文档也会推动测试——这似乎很有价值。请澄清您的问题。从表面上看,拥有显示使用情况的文档也会推动测试——这看起来很有价值。
"""
This is the "example" module.
The example module supplies one function, factorial(). For example,
>>> factorial(5)
120
"""
def factorial(n):
"""Return the factorial of n, an exact integer >= 0.
If the result is small enough to fit in an int, return an int.
Else return a long.
>>> [factorial(n) for n in range(6)]
[1, 1, 2, 6, 24, 120]
>>> [factorial(long(n)) for n in range(6)]
[1, 1, 2, 6, 24, 120]
>>> factorial(30)
265252859812191058636308480000000L
>>> factorial(30L)
265252859812191058636308480000000L
>>> factorial(-1)
Traceback (most recent call last):
...
ValueError: n must be >= 0
Factorials of floats are OK, but the float must be an exact integer:
>>> factorial(30.1)
Traceback (most recent call last):
...
ValueError: n must be exact integer
>>> factorial(30.0)
265252859812191058636308480000000L
It must also not be ridiculously large:
>>> factorial(1e100)
Traceback (most recent call last):
...
OverflowError: n too large
"""
import math
if not n >= 0:
raise ValueError("n must be >= 0")
if math.floor(n) != n:
raise ValueError("n must be exact integer")
if n+1 == n: # catch a value like 1e300
raise OverflowError("n too large")
result = 1
factor = 2
while factor <= n:
result *= factor
factor += 1
return result
if __name__ == "__main__":
import doctest
doctest.testmod()