两次打印0

时间:2018-10-15 20:49:52

标签: python

我对该程序进行了编码以查找数字的阶乘。当我尝试使用数字0时,它将打印两次,但是当我使用其他任何数字时,它都可以正常工作。

def factorial_num(factorial):
  num = int(input("Write a number to figure out his factorial"))
  if num == 0:
    print ("The factorial of 0 is 1")
  elif num < 0:
    print ("Negative numbers don't have a factorial")
  else:
    for i in range (1, num + 1):
     factorial = factorial*i
  print ("The factorial of", num, "is", factorial)

factorial_num(1)

为什么会这样?

1 个答案:

答案 0 :(得分:1)

所以基本上,这里的问题与缩进有关。

如果您查看 if 块,则有3个选项。对于任何给定的数字,仅执行以下其中之一:if,elif,else,则代码将在if块之后继续运行。

输入0时,代码将执行

  

如果num == 0:

     

打印(“阶乘0为1”)

块(因此将结果打印一次),然后继续。

在if块之后,有另一个总是总是执行的打印(因此第二个打印)

该如何解决:

缩进最后一个打印,使其在块的 else 部分中完全删除,并修改块,以便在 else 部分。

相关问题