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中,每个“:”和换行符之后,都必须缩进至少一个空格或制表符。
在上面的程序中,您已经声明了一个函数search()
,并在其后加上了分号,因此,在下一行中,您需要在函数内部缩进语句。
因此,您将必须缩进try:
和except:
语句,并递归地继续缩进try / except子句中存在的代码块
我可以看到关于缩进的两个关键部分:
try:
和except EOFError:
具有与def search():
]相同的缩进>print
语句缩进8个空格也许这是一个问题: