[英]Printing 0 twice
我对该程序进行了编码以查找数字的阶乘。 当我尝试使用数字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)
为什么会这样呢?
因此,基本上,这里的问题与缩进有关。
如果您查看if块,则有3个选项。 对于任何给定的数字,仅执行以下其中之一:if,elif,else,则代码将在if块之后继续运行。
输入0时,代码将执行
如果num == 0:
打印(“ 0的阶乘为1”)
块(因此将结果打印一次),然后再继续。
在if块之后,还有另一个总是执行的打印(因此,第二个打印)
您可以采取哪些措施解决此问题:
缩进最后一个打印件,使其在块的else部分中; 或完全删除第一个if部分,然后修改块,以便将0包括在else部分中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.