我收到一个语法错误,冒号位于“if(num< 0)”之后

时间:2018-02-14 19:15:10

标签: python

num = float(input('Enter a positive number: ')
if (num < 0):
    print("Sorry, factorial does not exist for negative numbers") 
elif (num == 0):
    print("The factorial of 0 is 1.")
else:
   for i in range(1,num + 1):     
       factorial = factorial * i
   print("The factorial of",num,"is",factorial)

1 个答案:

答案 0 :(得分:0)

这里有很多错误。

  • 第一行缺少结束括号。

  • 使用int比使用float更合适。

  • 第8行中的变量factorial未初始化,但随后 引用自己。

  • 最后一行格式不正确。

请将其与以下代码进行比较:

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)

num = int(input('Enter a positive number: '))
if (num < 0):
    print("Sorry, factorial does not exist for negative numbers") 
else:
   fac = factorial (num) 
   print("The factorial of " + str(num) + " is " + str(fac))

我已将阶乘的计算放入一个递归调用的函数中(你可以学习的东西)。