以下代码为什么会产生缩进错误?

问题描述 投票:-1回答:3
def search():
    try:
        option=input("\n\nWhta do you want to search by ('A' for account type, 'B' for balance): ")
        if option.lower()=='a':
            option_2=input("\n\nWhat type of account do you want to view ('C' for current,'S' for savings): ")
            if option_2.upper()=="C":
                inFile=open("account.dat","rb")
                acc_det=pickle.load(inFile)
                for x in acc_det:
                    if x.rettype()=="C":
                            print("\n\n\tACCOUNT HOLDER LIST\n\n")
                            print(60*"=")
                            print("%-10s"%"A/C No.","%-20s"%"Name","%-10s"%"Type","%-6s"%"Balance")
                            print(60*"=","\n")
                            x.report()

    except EOFError:
        print("Enter Valid Statement")



"""*****************************************************************************
                        THE MAIN FUNCTION OF PROGRAM
*****************************************************************************"""

intro()

while True:
    print(3*"\n",60*"=")
    print("""MAIN MENU

    1. New Account
    2. Deposit Amount
    3. Withdraw Amount
    4. Balance Enquiry
    5. All Account Holder List
    6. Close An Account
    7. Modify An Account
    8. Exit
    9. Filter Accounts
    """)

代码在最后一个三重引号之后给出了缩进错误。我不知道为什么,但是如果删除了“ try”子句,错误就会消失。为什么会这样?

编辑:我已经在代码的下一部分进行了编辑,在主函数中调用了该部分

python python-3.x compiler-errors comments
3个回答
0
投票

在python中,每个“:”和换行符之后,都必须缩进至少一个空格或制表符。

在上面的程序中,您已经声明了一个函数search(),并在其后加上了分号,因此,在下一行中,您需要在函数内部缩进语句。

因此,您将必须缩进try:except:语句,并递归地继续缩进try / except子句中存在的代码块


0
投票

我可以看到关于缩进的两个关键部分:

  1. [try:except EOFError:具有与def search():]相同的缩进>
  2. 您的print语句缩进8个空格

0
投票

也许这是一个问题:

© www.soinside.com 2019 - 2024. All rights reserved.