簡體   English   中英

為什么下面的代碼會產生縮進錯誤?

[英]Why does the following code produce an indentation error?

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”子句,錯誤就會消失。 為什么會這樣?

編輯:我在代碼的下一部分進行了編輯,我在其中調用了主 function

在 python 中,在每個“:”和換行符之后,至少需要有一個空格或制表符的縮進。

在上面的程序中,您已經聲明了一個 function search() ,並且后面有一個分號,因此在下一行中,您需要縮進 function 中的語句。

因此,您必須縮進try:except:語句,並遞歸地縮進 try/except 子句中的代碼塊

我可以看到關於縮進的兩個關鍵部分:

  1. try:並且except EOFError:具有與def search():
  2. 您的print語句縮進 8 個空格

也許這是一個問題:

def search():
try:

嘗試這個:

def search():
    try:

執行 def search() 並嘗試:具有相同級別的縮進?

暫無
暫無

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

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