无法在Python中生成阶乘函数

2024-05-29 05:10:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码

import sys

number=int(sys.argv[1])

if number == 0
    fact=1
else
    fact=number
for (x=1; x<number; x++)
    fact*=x;             // mistake probably here

print fact

我明白错误

File "factorial.py", line 5
    if number == 0
                 ^
SyntaxError: invalid syntax

如何在Python中生成阶乘函数?


Tags: 代码importnumberforifhere错误sys
3条回答

我知道你可能是出于教育的原因而试图自己实现这一点。

但是,如果没有,我建议使用math模块内置的factorial函数(注意:需要python 2.6或更高版本):

>>> import math
>>> math.factorial(5)
120

这个模块是用C编写的,因此,它将比用python编写要快得多。(不过,如果不计算大的阶乘,这两种方法都不会太慢)。

这是您的代码,已修复并正在工作:

import sys
number = int(sys.argv[1])
fact = 1
for x in range(1, number+1):
    fact *= x

print fact

(阶乘0是1,对于任何不知道的人-我必须查一下。8-)

ifelsefor等后面需要冒号,Python中for的工作方式与C不同

错误所在的行应为

if number == 0:

注意末尾的冒号。

另外,您需要在else和for之后添加相同的冒号。冒号的工作方式与其他语言中的{}类似。

最后,这不是for循环在Python中的工作方式。您要使用该列表的代码是

for x in range(1,number):

如果你用C风格的语言写的话,它的效果和你写的一样。

编辑:哦,我给出的for循环是错误的,它应该包含0。我更新了代码来纠正这个问题。

相关问题 更多 >

    热门问题