Python中elif语句的语法错误。。。?

2024-10-08 18:23:45 发布

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

每次运行此代码时都会出现语法错误。我不明白为什么在我的脚本中,我使用相同的结构,它工作得很好。你知道吗

我得到了elif region==2:line first的语法错误。然后,我得到了大量的缩进错误。我把凹痕弄得乱七八糟的。希望有人能发现这个问题。你知道吗

提前谢谢。你知道吗

def main():

back2main = "y"

while back2main == "y":

    print("Main Menu");print("1.)Highest Rainfall in one Day");print("2.)Wettest Location in Ireland");print("3.)Average Monthly Raindays");print("4.)[Construct Unique Query]");print("5.)Exit")
    choice = input("Please select one of options 1:5 above:")

    if choice == 1:

        print("1.)Cork");print("2.)Belfast");print("3.)Dublin");print("4.)Galway");print("5.)Limerick")
        region = input("Please enter a city from the numbered list above:")

        if region == 1:

            corkRain = open("CorkRainfall.txt","r")

            highestRain = 0.0

            for line in corkRain:
                data = line.split(" ")
                if float(data[3]) > highestRain:
                    highestRain = float(data[3])

        print("Highest rainfall in a single day for Cork: " + str(highestRain) + " mm")

        corkRain.close()

        back2main = raw_input("Return to Main Menu? (y/n):")

        elif region == 2:

            belfastRain = open("BelfastRainfall.txt","r")

            highestRain = 0.0

            for line in belfastRain:
                data = line.split(" ")
                if float(data[3]) > highestRain:
                    highestRain = float(data[3])

        print("Highest rainfall in a single day in Belfast: ") + str(highestRain)

Tags: inforinputdataiflinefloatregion
3条回答

我建议你试试这个:

def main():

    back2main = "y"

    while back2main == "y":

        print("Main Menu\n1.)Highest Rainfall in one Day\n2.)Wettest Location in Ireland\n3.)Average Monthly Raindays\n4.)[Construct Unique Query]\n5.)Exit")
        choice = input("Please select one of options 1:5 above:")

        if choice == 1:

            print("1.)Cork\n2.)Belfast\n3.)Dublin\n4.)Galway\n5.)Limerick")
            region = input("Please enter a city from the numbered list above:")

            if region == 1:

                corkRain = open("CorkRainfall.txt","r")

                highestRain = 0.0

                for line in corkRain:
                    data = line.split(" ")
                    if float(data[3]) > highestRain:
                        highestRain = float(data[3])



            elif region == 2:

                belfastRain = open("BelfastRainfall.txt","r")

                highestRain = 0.0

                for line in belfastRain:
                    data = line.split(" ")
                    if float(data[3]) > highestRain:
                        highestRain = float(data[3])

            print("Highest rainfall in a single day for Cork: " + str(highestRain) + " mm")

            corkRain.close()

            back2main = raw_input("Return to Main Menu? (y/n):")

            print("Highest rainfall in a single day in Belfast: ") + str(highestRain)

您可以用换行符(the \n)替换多个print语句,并且第一行下面的所有代码都需要缩进。此外,elif也因为以下几行而中断:

print("highest rainfall...
corkRain.close()
back 2main = ...

你的问题是:

print("Highest rainfall in a single day for Cork: " + str(highestRain) + " mm")
corkRain.close()
back2main = raw_input("Return to Main Menu? (y/n):")

如果您想让这些行位于第一个if下面,那么它们应该再缩进一级。你知道吗

执行时被解释为超出上一个作用域,下一个作用域是“if”而不是“elif”,或者如果您想属于上一个作用域,那么它应该是正确的。你知道吗

elif块在垂直方向上必须与上面的if块位于同一位置。这意味着elif下的所有代码,包括elif都应该向左移动一个选项卡。你知道吗

相关问题 更多 >

    热门问题