Python缩进错误。我无法弄清楚这里有什么问题

时间:2011-08-15 23:26:59

标签: python indentation

我正在使用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 :(得分: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

答案 1 :(得分:0)

在该行之前有三个\t并且您在其他地方使用了四个空格(它也位于其他地方,另一个返回后面)。 Notepad ++中有一个设置,让您始终使用空格作为选项卡。因为我将它用于Python(尽管只是偶尔使用它),所以我的机器总是打开它。