Python缩进错误,我搞不清楚哪里出错了
我正在使用Notepad++这个软件,它可以显示不同的缩进等。我在第26行总是出现一个错误代码:
return firstNum, secondNum, thirdNum
这是完整的代码。如果有人能看出这里发生了什么,那就太好了。我已经为这个问题烦恼了太久。如果我第一次提问时没有问出具体的问题,我很抱歉。
option = 1
while option !=0:
print "\n\n\n************MENU************"
print "1. Counting"
print "2. Fibbonacci Sequence"
print "0. GET ME OUTTA HERE!"
print "*" * 28
option = input("Please make a selection: ") #counting submenu
if option == 1:
print "\n\n*******Counting Submenu*******"
print "1. Count up by one"
print "2. Count down by one"
print "3. Count up by different number"
print "4. Count down by different number"
print "*" * 28
countingSubmenu = input("Please make a selection: ")
def getNum():
firstNum = input("Please state what number to start at: ")
secondNum = input("Please state swhat number to end at: ")
if countingSubmenu == 3 or countingSubmenu == 4:
thirdNum = input("Please state what increment you would want to go up by: ")
return firstNum, secondNum, thirdNum
else:
return firstNum, secondNum
if option == 1:
getNum(firstNum, secondNum, thirdNum)
for x in range(firstNum, secondNum+1, 1):
print x
print "End of test." #def getNum():
2 个回答
0
在你那行代码前面有三个\t
,而在其他地方你用的是四个空格(包括在else和后面的其他return前面)。在Notepad++里有一个设置,可以让你始终用空格代替制表符(tab)。因为我偶尔也用它来写Python,所以我在我的电脑上总是把这个设置打开。
2
下面这三行代码使用了制表符,而不是空格:
return firstNum, secondNum, thirdNum
else:
return firstNum, secondNum
你可以通过尝试编辑这个问题很容易地看到这一点,制表符会显示为8个空格,这样缩进就会明显不对了。
把这些行前面的空白全部删掉,然后只用空格重新缩进,这样就应该不会出现缩进错误了。
不过,你的代码可能还是不正确,因为函数 getNum
目前不接受任何参数,但你却用三个参数去调用它。
编辑: 我觉得你想要做的是在调用 getNum
函数时获取返回值,做到这一点你应该这样调用它:
firstNum, secondNum, thirdNum = getNum()
或者...
result = getNum()
firstNum, secondNum, thirdNum = result
如果你总是让 getNum
返回相同数量的值,可能会更简单。所以把这一行 return firstNum, secondNum
改成 return firstNum, secondNum, None
。