использование 1 числовой опции для 2 разных функций в одном цикле - PullRequest
0 голосов
/ 12 июня 2019

это программа банкомата, опция 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("*********************************************")

1 Ответ

1 голос
/ 12 июня 2019

Я предлагаю вам прочитать о Конечном автомате .

Короче говоря, изначально ваша программа должна быть в состоянии main-menu.после ввода (2) состояние должно измениться на deposit и запросить дальнейший ввод данных пользователем.В тот момент, когда пользователь вводит (1), вы должны игнорировать блок main-menu if / else и вместо этого проверять блок 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
    ...
...