我刚刚开始研究Python。我必须使用Python3.7。 有人可以告诉我一个有效的阶乘代码吗? 我尝试了一些我在这里找到的东西,但我总是收到此错误:
=================== RESTART: C:\programozás\pytutorial.py ===================
代码:
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
答案 0 :(得分:2)
即使您可以简单地使用math
库,您的代码也可以正常工作:
import math
print(math.factorial(5))
问题不是出自您的脚本,所以也许您应该尝试重新安装python,并避免使用Adam Toth指出的带有特殊字符的路径。
更新:获取输入并按照评论中的要求返回阶乘
import math
print(math.factorial(int(input(">>"))))
答案 1 :(得分:1)
最有可能是由于在.py文件的路径中包含特殊字符引起的。因此,应使用C:\ programming之类的文件夹,或不带特殊字符的任何内容(如“á”)。
做到这一点非常重要,即使它不能解决您当前的问题,也可以在将来预防更多问题。
Ps .:Jókiszúrnimagyarprogramozót是:)
答案 2 :(得分:0)
我看到一个与此错误有关的(旧)线程here
对于逻辑: 我们必须考虑:
一种写法是:
def factorial(n):
if n < 0:
result = "Factorial doesn't exist for negative numbers"
elif n == 0:
result = 1
else:
result = 1
for i in range(1, n + 1):
result *= i
return result
您也可以尝试递归的概念。
要获取数字“ num”的阶乘:
print(factorial(num))
确保正确缩进代码,缩进在python中很重要。
希望有帮助!
答案 3 :(得分:0)
使用递归函数的阶乘 Python 代码:
def factorial(n):
if n <= 1:
return 1
else:
return n * factorial(n-1)
factorial(5)
<块引用>
注意:第一个条件仅在输入为 0 或 1 时满足,并且在 else 块中 n 将递归乘以 n * n - 1< /strong>。