Почему следующий код вызывает ошибку отступа? - PullRequest
0 голосов
/ 07 ноября 2019
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". Почему это происходит?

Редактировать: я отредактировал следующую часть кода, где я вызываю основную функцию

Ответы [ 3 ]

0 голосов
/ 07 ноября 2019

Я вижу два критических раздела в отношении отступа:

  1. try: и except EOFError: имеют тот же отступ, что и def search():
  2. Ваши print утвержденияотступ в 8 пробелов
0 голосов
/ 07 ноября 2019

возможно здесь проблема:

def search():
try:

попробуйте это:

def search():
    try:

сделайте def search () и попытайтесь: иметь одинаковый уровень отступа?

0 голосов
/ 07 ноября 2019

В Python после каждого ":" и новой строки должен быть отступ по крайней мере из одного пробела или символа табуляции.

В указанной выше программе вы объявили функцию search() иточка с запятой после него, поэтому в следующей строке вам нужно сделать отступ для операторов внутри функции.

Итак, вам придется делать отступы для операторов try: и except: и рекурсивно продолжать делать отступыкодовые блоки, присутствующие в предложениях try / кроме

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...