Python 2"意外的缩进"错误

时间:2016-08-08 19:54:53

标签: python python-2.7

我试图做一个小游戏但是出现了一些奇怪的错误...

以下是代码:

while True:

    print "======================MENU======================"
    print "1 - Axali tamashis dawyeba:"
    print "2 - Wesebi"
    print "3 - Tamashis avtori"

    menu = raw_input ("< ")
    if menu == "3":
        print "======================Avtori======================"
        print ""
        print ""
        print "Tamashis avtoria - Sandro Stashevski"
    elif menu == "2":
        print "======================Wesebi======================"
        print ""
        print ""
        print "Tamasshi aris 10 shekitxva. Tito shekitxvaze 4 savaraudo pasuxi."
        print "Tqven agretve gaqvt 1 daxmareba: 50/50."
    s11 == "A - Sidnei"
    s12 == "B - Parizi"
    s13 == "C - Berlini"
    s14 == "D - Varshava"
    daxmareba = "1 - 50/50 +"
    elif menu == "1":
        print "Shekitxva 1/10"
        print ""
        print "Ra hqvia Germaniis dedaqalaqs"
        print s11,
        print s12,
        print s13,
        print s14,
        print ""
        print daxmareba,

错误在第25行弹出...

    elif menu == "1":
       ^
SyntaxError: invalid syntax

3 个答案:

答案 0 :(得分:1)

您的代码存在一些缩进问题, 试试这个:

flash_video_player_url: false

答案 1 :(得分:1)

Python是一种缩进很重要的语言。它使用缩进来标识特定块的结束位置和新块的开始。

在上面的代码中,第25-29行不是一致缩进的。它应该与它上面的行具有相同的缩进(因为第30行上有另一个elif块)。此外,while True:后面的行也必须缩进。

while True:

    print "======================MENU======================"
    print "1 - Axali tamashis dawyeba:"
    print "2 - Wesebi"
    print "3 - Tamashis avtori"

    menu = raw_input ("< ")
    if menu == "3":
        print "======================Avtori======================"
        print ""
        print ""
        print "Tamashis avtoria - Sandro Stashevski"
    elif menu == "2":
        print "======================Wesebi======================"
        print ""
        print ""
        print "Tamasshi aris 10 shekitxva. Tito shekitxvaze 4 savaraudo pasuxi."
        print "Tqven agretve gaqvt 1 daxmareba: 50/50."
        s11 == "A - Sidnei"
        s12 == "B - Parizi"
        s13 == "C - Berlini"
        s14 == "D - Varshava"
        daxmareba = "1 - 50/50 +"
    elif menu == "1":
        print "Shekitxva 1/10"
        print ""
        print "Ra hqvia Germaniis dedaqalaqs"
        print s11,
        print s12,
        print s13,
        print s14,
        print ""
        print daxmareba,

还要确保使用一致的空格。不要混合空格和制表空格,这又会导致缩进错误。

答案 2 :(得分:0)

更一般的答案:

你有一个if ... elif ... elif ... else ...构造。 Python期望每个if和else之间的部分(读elifelse if)作为一个块读取,可能还有进一步缩进的子块。所以你不应该

if True:
    print 'foo'
print 'I am not indented enough'
elif False:
    print 'I am never executed'
print 'I should be indented'
else:
    print 'I am just as lonely as the elif stuff but at least I am indented'

我的代码的正确版本是:

if True:
    print 'foo'
    print 'I am not indented enough'
elif False:
    print 'I am never executed'
    print 'I should be indented'
else:
    print 'I am just as lonely as the elif stuff but at least I am indented'