有人能给我看一个好的阶乘码吗?

2024-09-30 16:33:32 发布

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

我刚开始学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

Tags: 代码inpyforreturndef错误range
3条回答

我看到一个关于这个错误的相关(旧的)线程here

对于逻辑: 我们必须考虑:

  1. 负数
  2. 正数

所以写的一种方法是:

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中很重要。你知道吗

希望有帮助!你知道吗

问题很可能是由于.py文件的路径中有一个特殊字符引起的。所以应该使用像C:\programming这样的文件夹,或者任何没有特殊字符的文件夹,比如'aa'。你知道吗

这样做是非常重要的,即使它不能解决你目前的问题,它可以防止更多的未来。你知道吗



注:Jókiszúrni magyar programozót is:)

您的代码正在运行,即使您可以简单地使用math库:

import math
print(math.factorial(5))

这个问题并不是源于您的脚本,所以也许您应该尝试重新安装python,并避免使用Adam Toth指出的带有特殊字符的路径。你知道吗

Update: to get the input and return a factorial as asked in comments

import math
print(math.factorial(int(input(">>"))))

相关问题 更多 >