Python 3.x 用序贯程序求给定数的阶乘

Python 3.x 用序贯程序求给定数的阶乘,python-3.x,Python 3.x,我对python编码还不熟悉。所以,请有人找出这段代码的问题所在 def factorial(n): sum=1 for i in range(1..n+1): sum=sum*i print(sum) return sum v=int(input("enter the number:")) factorial(v) 我得到的错误是: enter the number:4 Traceback (most recent call last): F

我对python编码还不熟悉。所以,请有人找出这段代码的问题所在

def factorial(n):
    sum=1
    for i in range(1..n+1):
        sum=sum*i
    print(sum)
    return sum

v=int(input("enter the number:"))
factorial(v)
我得到的错误是:

enter the number:4
Traceback (most recent call last):
File "C:/Users/Ramakrishnar/AppData/Local/Programs/Python/Python36/fact.py",line 9, in <module>
 factorial(v)
  File "C:/Users/Ramakrishnar/AppData/Local/Programs/Python/Python36/fact.py", line 3, in factorial
for i in range(1..n+1):
AttributeError: 'float' object has no attribute 'n'
输入数字:4
回溯(最近一次呼叫最后一次):
文件“C:/Users/Ramakrishnar/AppData/Local/Programs/Python/Python36/fact.py”,第9行,在
阶乘(v)
文件“C:/Users/Ramakrishnar/AppData/Local/Programs/Python/Python36/fact.py”,第3行,阶乘形式
对于范围(1..n+1)内的i:
AttributeError:“float”对象没有属性“n”

有两种方法可以编写程序。要重新格式化代码,使其处于良好状态,您可以按如下方式组织程序:

def main():
    variable = int(input('Enter the number: '))
    print(factorial(variable))


def factorial(number):
    total = 1
    for integer in range(1, number + 1):
        total *= integer
    return total


if __name__ == '__main__':
    main()
相反,如果您试图用最少的代码完成相同的任务,那么以下两行代码将为您完成完全相同的任务:

import math
print(math.factorial(int(input('Enter the number: '))))

有两种方法可以编写程序。要重新格式化代码,使其处于良好状态,您可以按如下方式组织程序:

def main():
    variable = int(input('Enter the number: '))
    print(factorial(variable))


def factorial(number):
    total = 1
    for integer in range(1, number + 1):
        total *= integer
    return total


if __name__ == '__main__':
    main()
相反,如果您试图用最少的代码完成相同的任务,那么以下两行代码将为您完成完全相同的任务:

import math
print(math.factorial(int(input('Enter the number: '))))

对于范围内的i(1,n+1):太好了,祝你好运:)我很好奇你是否懒得看range命令的文档?对于范围内的i(1,n+1):太好了,祝你好运:)我很好奇你是否懒得看range命令的文档?