Python程序中的缩进错误

时间:2015-04-16 22:57:34

标签: python indentation

我的代码是 -

def factorial(number):

result = 1

while number > 0:

result = result*number

number = number- 1

return result

in_variable = input("Enter a number to calculate the factorial of")

print factorial(in_variable)

我在线上收到缩进错误:

number = number- 1

我的错误是:Unexpected indent

为什么?

此致

Nupur

2 个答案:

答案 0 :(得分:2)

您发布的代码根本没有缩进。请记住,对于Python,indentation matters

缩进代码后,您仍然面临两个错误:

  1. 您正在使用input,这意味着您使用的是Python3,或者您应该使用raw_input。请参阅this discussion,它可以很好地解释差异。如果您使用的是Python3,那么使用print语句是不正确的:您应该使用print function。如果您使用的是Python2,那么您应该使用raw_input
  2. 您的函数factorial需要一个数字,但您传递的是一个字符串(这是raw_inputinput的返回值)。首先转换为int。
  3. 此代码正确缩进并适用于Python3。如果您正在使用Python2,请使用raw_input而不是input

    def factorial(number):
        result = 1
        while number > 0:
            result = result*number
            number = number- 1
        return result
    
    in_variable = input("Enter a number to calculate the factorial of")
    
    print(factorial(int(in_variable)))
    

答案 1 :(得分:0)

def factorial(number):

    result = 1

    while number > 0:

       result = result * number

       number = number- 1

    return result
in_variable = int(input("Enter a number to calculate the factorial of"))

print(factorial(in_variable))

您需要将输入从str转换为int。