我的代码是 -
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
答案 0 :(得分:2)
您发布的代码根本没有缩进。请记住,对于Python,indentation matters。
缩进代码后,您仍然面临两个错误:
input
,这意味着您使用的是Python3,或者您应该使用raw_input
。请参阅this discussion,它可以很好地解释差异。如果您使用的是Python3,那么使用print
语句是不正确的:您应该使用print
function。如果您使用的是Python2,那么您应该使用raw_input
。factorial
需要一个数字,但您传递的是一个字符串(这是raw_input
和input
的返回值)。首先转换为int。此代码正确缩进并适用于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。