1

计算时

math.factorial(100)

我得到:

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L

为什么数字末尾有L?

4

4 回答 4

15

L 表示它是 along而不是 a intrepr你看到它的原因是你在看long

您可以使用

print math.factorial(100)

或者

str(math.factorial(100))

如果你只想要号码

于 2010-08-05T04:11:03.893 回答
3

L意味着它是一个长整数

于 2010-08-05T04:05:12.220 回答
1

我相信您正在使用一个 BigInt,它long在 Python 中被称为 - 它会根据需要扩展并占用可变数量的 RAM。这个名字long可能会让人困惑,因为这意味着当今少数几种流行语言中的特定字节数。以下可以帮助您了解存储对象所需的字节数。

Python 2.6.2 (r262:71600, Aug 14 2009, 22:02:40) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> import sys
>>> a = 1
>>> sys.getsizeof(a)
12
>>> import math
>>> sys.getsizeof(math.factorial(100))
84
>>> sys.getsizeof(math.factorial(200))
182
>>> 
于 2010-08-05T04:16:11.407 回答
0

您可以使用阶乘计算器代码...

def factorial (number):
    product=1;
    for i in range(number):
        product=product*(i+1)
    return product

我没有 Python,所以我没有测试代码。我保证这个功能会起作用。

于 2012-08-02T21:31:00.793 回答