使用Python3中的循环计算阶乘

2024-09-28 03:22:29 发布

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

我目前正在学习软件开发作为一个初学者,我有一个任务,在我的编程类计算和显示阶乘使用循环。我已经得到了伪代码,必须将其转换为真代码,并在REPL中测试它,以确保它返回预期的结果。你知道吗

我几乎有,但我遇到了两个问题,我似乎无法解决。你知道吗

1)函数在计算和

2)当我希望答案显示在一行上时,答案显示在多行上。你知道吗

我当前的代码(返回正确答案)如下:

def calcFactorial(number):
    factorial = 1
    print(str(number)+"! =", number)
    for count in range (1, number):
        if number-count > 0:
            factorial = factorial*number-count
            print("x", str(number-count))
    factorial = factorial*number
    print("=", factorial)

当我以3为例进行测试时,REPL返回以下结果:

>>> print(calcFactorial(3))
3! = 3
x 2
x 1
= 12
None

因此,我有正确的答案,但有一个额外的行“无”,我想删除(我相信这与打印功能有关?)我不知道如何正确格式化。 任何帮助都将不胜感激。你知道吗


Tags: 函数答案代码innumberfordef编程
3条回答

关于你的第二个问题:

Blockquote 2) The answer is displaying over multiple lines when I want it to display on a single line.

您可以使用一个print语句来修复它:

def calcFactorial(number):
    factorial = 1
    string = str(number) + "! = " + str(number)
    for count in range (1, number):
        if number-count > 0:
            factorial = factorial*(number-count)
            string = string + " x " + str(number-count)
    factorial = factorial * number
    print(string + " = " + str(factorial))

这将为您提供:

IN: calcFactorial(3)
OUT: 3! = 3 x 2 x 1 = 6

另一方面:您可能需要考虑如何递归地实现它。也许这会在你的课程后面出现,但这将是第一个去的例子之一。你知道吗

你的函数calcFactorial(3)已经打印出来了,所以你不应该用

print(calcFactorial(3))

就这么说吧

calcFactorial(3)

没有打印功能。你知道吗

您可以考虑调用函数calc_and_print_factorial(),以明确说明此函数已经完成了打印

您的calcFactorial函数没有显式返回值,因此默认情况下它将返回None,因此print(calcFactorial(3))将始终打印None。你知道吗

您应该使calcFactorial函数在末尾返回factorial

def calcFactorial(number):
    factorial = 1
    print(str(number)+"! =", number)
    for count in range (1, number):
        if number-count > 0:
            factorial = factorial*number-count
            print("x", str(number-count))
    factorial = factorial*number
    print("=", factorial)
    return factorial

相关问题 更多 >

    热门问题