我的代码
import sys number=int(sys.argv[1]) if number == 0 fact=1 else fact=number for (x=1; x我收到了错误
File "factorial.py", line 5 if number == 0 ^ SyntaxError: invalid syntax如何在Python中创建阶乘函数?
1> Mike Cooper..:应该读取您的错误所在的行
if number == 0:注意结尾的冒号.
另外,你需要在else和for之后添加相同的冒号.冒号在其他语言中与{}的工作方式类似.
最后,那不是循环如何在Python中工作.您要使用该列表的代码将是
for x in range(1,number):如果你把它放在C风格的语言中,那么你所写的内容会产生同样的效果.
编辑:哎呀,我给的for循环是错误的,它会包括0.我更新了代码来纠正这个问题.
2> TM...:我知道您可能出于教育原因尝试自己实施此操作.
但是,如果没有,我建议使用
math
模块内置的阶乘函数(注意:需要python 2.6或更高版本):>>> import math >>> math.factorial(5) 120这个模块是用C语言编写的,因此它比在python中编写要快得多.(但是,如果你不是计算大型因子,那么无论如何都不会太慢).
3> RichieHindle..:这是你的代码,修复和工作:
import sys number = int(sys.argv[1]) fact = 1 for x in range(1, number+1): fact *= x print fact(因子零是一个,对于任何不知道的人 - 我必须查阅.8-)
你需要冒号后
if
,else
,for
等的方式,以及for
在Python的工作原理是不同C.