Python 2“意外缩进”

2024-09-28 15:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图做一个小游戏,但突然出现了一些奇怪的错误。。。你知道吗

代码如下:

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

Tags: 代码true错误menuprint小游戏elifwhile
3条回答

更一般的答案是:

您有一个if ... elif ... elif ... else ...构造。Python期望每个if和else之间的部分(将elif读作else 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'

你的代码有一些缩进问题, 试试这个:

s11 = "A - Sidnei"
s12 = "B - Parizi"
s13 = "C - Berlini"
s14 = "D - Varshava"
daxmareba = "1 - 50/50 +"
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."

    elif menu == "1":
        print "Shekitxva 1/10"
        print ""
        print "Ra hqvia Germaniis dedaqalaqs"
        print s11,
        print s12,
        print s13,
        print s14,
        print ""
        print daxmareba,

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,

还要确保使用一致的空格。不要混用空格和制表符,这会再次导致缩进错误。你知道吗

相关问题 更多 >