它是一个ATM程序,选项2允许用户输入存款金额,但在该存款选项中是另一个使用相同的数值的选项列表对于其他选项。
if verify_pin(pin):
print(" Welcome to MCC ATM ")
print("****************************************")
print("* 1. Balance inquiry *")
print("* 2. Deposit *")
print("* 3. Withdrawal *")
print("* 4. Transfer Funds *")
print("* 5. History of Last 5 Transactions *")
print("* 6. Exit *")
print("****************************************")
option = int(input())
if option == 6:
print("*Exited Program*")
break
elif option < 1:
print("***Invalid Entry***")
elif option > 6:
print("***Invalid Entry***")
elif option ==1:
#HERE YOU CAN SEE THAT OPTION 1 PRINTS THE BALANCE OF BOTH ACCOUNTS
print("Checkings Balance: $" + format(checkings,'.2f'))
print("Savings balance: $" + format(savings,'.2f'))
elif option == 2:
#BUT HERE I NEED IT TO ALLOW THEM TO DEPOSIT INTO THE CHECKINGS ACOUNT WITHOUT PRINTING THE BALANCES
print("*********************************************")
print("* 1. Checking Account *")
print("* 2. Savings Account *")
print("* 3. Go Back To Main Menu *")
print("*********************************************")
我建议你阅读有限状态机。
简而言之,最初,程序应处于main-menu
状态。 输入 (2( 后,状态应更改为"deposit
"并请求进一步的用户输入。此时,当用户输入 (1( 时,您应该忽略 if/else 块main-menu
,而是检查deposit
块。
因此,使用代码作为基础的伪代码解决方案如下所示:
while (app_running):
if verify_pin(pin):
if app_state == 'main-menu':
# print main menu
# request input
# process input in the main menu if/else case
if app_state == 'deposit':
# print deposit menu
# request input
# process input in the deposit if/else case
...