簡體   English   中英

Python:為什么我在elif(r <= 9)上得到“預期的縮進塊”:

[英]Python: Why am I getting an “expected an indented block” on elif (r <= 9):

我似乎無法弄清楚該python代碼的格式錯誤。 我已經確定縮進正確,但是我不知道為什么會發生此錯誤。 我在這里想念什么?

width = passageWidth(checkChamber, chamberMaxLength)
if (width >= 10):
    point = width/2
else:
    width = 2
r = random.randint(1, 19) #think aboout adding stairs later!!!
if (r <= 14):
    if (r == 5):
        door(False, 0) #continue 20, end door
    elif (r == 10):
        x = random.randint(1, 10)
        if (x == 1):
            door(False, -1) #continue 20, secret door
        else:
            #continue 20, dead end
    elif (r <= 9): ########### Error occurs here ##############
        if (r <= 6):
            if (r <= 2):
                #continue 30
            elif (r == 3):
                door(False, 0) #continue 30, door right at 20
            elif (r == 4):
                door(False, 0) #continue 30, door left at 20
            else:
        elif (r >= 6):
            if (r >= 8):
                passage(False, 0) #continue 30, passage left at 20
            else:
                passage(False, 0) #continue 30, passage right at 20
        else:
    elif (r <= 12):
        #continue 20 plus point, turn left, continue 10 plus point
    else:
        #continue 20 plus point, turn right, continue 10 plus point

    #offset edges along passage by point value to define sides of passage
elif (r <= 19):
    #create Chamber
else:
    #stairs

#Check if space is available, if not, terminate!
    else:
        #continue 20, dead end
elif (r <= 9):########### Error occurs here ##############

Python不允許空塊。 如果你寫

    else:
        pass # continue 20, dead end
elif (r <= 9):

錯誤應該消失。 (要消除所有此類錯誤,您將需要在多個位置進行此操作。)

順便說一句,Python首選的樣式是不要在控制表達式周圍寫括號,除非您需要它們將條件分成多行。 也就是說,你應該寫

elif r <= 9:

另外,在#兩邊都應始終留有空格,以引入注釋。 真正的Python解析器並不在乎,但是人類會這么做,“快速而骯臟的”解析器也可能會在乎(例如,這就是為什么問題中的代碼未正確突出顯示語法的原因)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM