在Python中单行输出给定数字的阶乘

时间:2018-09-23 17:30:55

标签: python python-3.x

n=int(input("Enter the Value for n:"))
result=1
for i in range(n, 1, -1):
    result=result*i
    print("factorial of",n,"is",result)

输出如下:

Enter the Value for n:4
factorial of 4 is 4
factorial of 4 is 12
factorial of 4 is 24

我的问题是-如何仅在单行(即最后一行)中获得输出?

5 个答案:

答案 0 :(得分:0)

在python中一行打印是这样的:

print('hello', end='')
print(' world')

输出为:hello world

希望这很有帮助

答案 1 :(得分:0)

将打印命令带出循环并仅打印一次结果

A

答案 2 :(得分:0)

如果您想特别喜欢它,可以手动计算阶乘,将中间打印值构建为字符串,然后仅用1行代码(不包括导入)将其全部打印出来。

以下显示一个元组,其中第一个元素是计算的阶乘,第二个是中间信息的字符串(打印在一行上)。

from functools import reduce
n=4

print(reduce(lambda x,y:(x[0]*y,"%s more text %d"%(x[1],x[0])),range(n,1,-1),(1,"")))

答案 3 :(得分:0)

这可能会帮助您:

import math
num = int(input('Enter the number:')
f = math.factorial(num)
print('The factorial of {} is {}'.format(num, f))

答案 4 :(得分:0)

使用reduce和lambda函数

>>> z =5
>>> reduce(lambda x,y:x*y,range(1,z+1))
120

这可能有帮助