Python: ATM: Difference between revisions
From Rabbi Blog
(Created page with "I'm auditing part 1 of a Programming class in Python as I have to take part 2 next semester (I have an old transfer credit that covered Programming 1, alas the last time I did...") |
mNo edit summary |
||
Line 79: | Line 79: | ||
print ("--------------------------------------------------------") | print ("--------------------------------------------------------") | ||
i=0 | i=0 | ||
while i < len( | while i < len(ACCOUNTS): | ||
print (""+ | print (""+ACCOUNTS[i]+" "+PINS[i]+" "+USERS[i]) | ||
i += 1 | i += 1 | ||
print (" ") | print (" ") | ||
Line 92: | Line 92: | ||
print (" Name Account ") | print (" Name Account ") | ||
print ("--------------------------------------------------------") | print ("--------------------------------------------------------") | ||
print (" "+ | print (" "+USERS[ACCOUNT_POSITION]+" "+USER_ACCOUNT) | ||
print ("--------------------------------------------------------") | print ("--------------------------------------------------------") | ||
Line 127: | Line 127: | ||
for row in table_data: | for row in table_data: | ||
print("{: >10} {: >10} {: >10} {: >10} {: >10}".format(*row)) | print("{: >10} {: >10} {: >10} {: >10} {: >10}".format(*row)) | ||
def startup(): | def startup(): | ||
Line 160: | Line 158: | ||
#### It does Lists. Let's do Lists | #### It does Lists. Let's do Lists | ||
################################################################################# | ################################################################################# | ||
ACCOUNTS = ["1234567","8675309","6666666","7654321","5551212"] | |||
PINS = ["1234","2345","3456","4567","5678"] | |||
USERS = ["Brock Shumway","Gale Winds","Gustavo Adolpho","Hank Simpsons","Hector Lizondo"] | |||
TOTAL_ACCOUNTS = len(ACCOUNTS) | |||
TOTAL_PINS = len(PINS) | |||
TOTAL_USERS = len(USERS) | |||
################################################################################# | |||
STARTING_BALANCE_CHECKING = 500 | STARTING_BALANCE_CHECKING = 500 | ||
STARTING_BALANCE_Savings_1 = 1500 | STARTING_BALANCE_Savings_1 = 1500 | ||
Line 195: | Line 194: | ||
#print ("#####") | #print ("#####") | ||
startup() | startup() | ||
WHILE_ACCOUNT_INPUT=0 | |||
while | while WHILE_ACCOUNT_INPUT == 0: | ||
USER_ACCOUNT = input("Please enter your seven digit Account Number or 0 to exit: ") | |||
# https://snakify.org/en/lessons/if_then_else_conditions/ | # https://snakify.org/en/lessons/if_then_else_conditions/ | ||
if | if USER_ACCOUNT == '0': | ||
print ("You entered 0, exiting program.") | print ("You entered 0, exiting program.") | ||
quit() | quit() | ||
elif len( | elif len(USER_ACCOUNT) < 7: | ||
if | if USER_ACCOUNT == "?": | ||
help() | help() | ||
else: | else: | ||
print ("The entered string was too short: " + str(len( | print ("The entered string was too short: " + str(len(USER_ACCOUNT))) | ||
elif len( | elif len(USER_ACCOUNT) > 7: | ||
print ("The entered string was too long: " + str(len( | print ("The entered string was too long: " + str(len(USER_ACCOUNT))) | ||
else: | else: | ||
print ("The entered string was correct: " + str(len( | print ("The entered string was correct: " + str(len(USER_ACCOUNT))) | ||
######################################################### | ######################################################### | ||
### Length was correct, but is it a valid account? | ### Length was correct, but is it a valid account? | ||
### Check ' | ### Check 'ACCOUNTS' list to see if typed in value exists | ||
### We really don't care if the user put in alpha | ### We really don't care if the user put in alpha | ||
### characters, it will fail the lookup. | ### characters, it will fail the lookup. | ||
######################################################### | ######################################################### | ||
if | if USER_ACCOUNT not in ACCOUNTS: | ||
print ("Account not found") | print ("Account not found") | ||
else: | else: | ||
WHILE_ACCOUNT_INPUT=1 | |||
##################################################### | ##################################################### | ||
Line 227: | Line 226: | ||
##################################################### | ##################################################### | ||
ACCOUNT_POSITION = ACCOUNTS.index(USER_ACCOUNT) | |||
#################################################### | #################################################### | ||
Line 233: | Line 232: | ||
#################################################### | #################################################### | ||
if debug == | if debug == 0: | ||
print ("Debugging Enabled") | print ("Debugging Enabled") | ||
print ("Total Accounts: " + str( | print ("Total Accounts: " + str(TOTAL_ACCOUNTS)) | ||
print ("Total Pins: " + str( | print ("Total Pins: " + str(TOTAL_PINS)) | ||
print ("Total Users: " + str( | print ("Total Users: " + str(TOTAL_USERS)) | ||
print ("Entered Account: " + | print ("Entered Account: " +USER_ACCOUNT) | ||
print ("Account Position: " + str( | print ("Account Position: " + str(ACCOUNT_POSITION)) | ||
print ("Pin at Pos " + str( | print ("Pin at Pos " + str(ACCOUNT_POSITION) + ": " + PINS[ACCOUNT_POSITION]) | ||
print ("User at Pos " + str( | print ("User at Pos " + str(ACCOUNT_POSITION) + ": " + USERS[ACCOUNT_POSITION]) | ||
cls() | cls() | ||
Line 253: | Line 252: | ||
while While_PIN_Input==0: | while While_PIN_Input==0: | ||
print ("Account: " + | print ("Account: " +USER_ACCOUNT) | ||
User_PIN = input("Please enter your four digit PIN Number or 0 to exit: ") | User_PIN = input("Please enter your four digit PIN Number or 0 to exit: ") | ||
# https://snakify.org/en/lessons/if_then_else_conditions/ | # https://snakify.org/en/lessons/if_then_else_conditions/ | ||
Line 274: | Line 273: | ||
### characters, it will fail the lookup. | ### characters, it will fail the lookup. | ||
######################################################### | ######################################################### | ||
if User_PIN == | if User_PIN == PINS[ACCOUNT_POSITION]: | ||
While_PIN_Input=1 | While_PIN_Input=1 | ||
else: | else: | ||
Line 420: | Line 419: | ||
EXIT = input("Press ENTER to return to Main Menu... ") | EXIT = input("Press ENTER to return to Main Menu... ") | ||
WHILE_WITHDRAWALS_MENU=1 | WHILE_WITHDRAWALS_MENU=1 | ||
if WHILE_WITHDRAWALS_MENU == 0: | |||
##### WHICH ACCOUNT? ###### | ##### WHICH ACCOUNT? ###### | ||
print ("------------------------------------") | print ("------------------------------------") | ||
Line 481: | Line 478: | ||
#### If you're here, you exited the main_menu | #### If you're here, you exited the main_menu | ||
cls() | |||
ledger() | ledger() | ||
print ("") | |||
print ("Thank you and have a good day.") | print ("Thank you and have a good day.") | ||
</pre> | </pre> |
Revision as of 00:34, 16 September 2019
I'm auditing part 1 of a Programming class in Python as I have to take part 2 next semester (I have an old transfer credit that covered Programming 1, alas the last time I did programming in school for school, it was in C and C++). I don't think I've ever done anything from start to finish in Python outside of print ("Hello world!"), though I've looked at the code of others a lot. My PERL programming comes in handy with this, but I'm still new at it.
It's a seven week course and one of the semester projects is to build an ATM prototype. I was out week one and I picked up the course notes a week ago (week 2). Tomorrow starts week 3.
To get through the project I had to figure out
- How Python works with lists
- This wasn't called for in the project, but it made things so much easier for the account setup.
- console output
- Why all the () stuff?
- if, elsif, else
- elif???
- casting types
- int\float, etc - I still have some basic trouble with this, mostly around remembering what I was hoping to do
- format output in columns
- not called for, I just don't like ugly columns
- functions
- I actually like Python's handling of functions, though I didn't look into passing information in an out, nor did I look into local vs global variables.
- Loops
- Made sense!
Here's my first iteration of the semester project, four days after I started it in IDLE:
################################################################################# ## /---------------------------------------------------------------------------\* ## | Program: ATM ## | Version: 0.0.1 ## | Language: 3.7.4 ## | ## | Description: ATM Project Iteration #1 ## | ## | Course: IT 261-1 ## | Author: Mike Beane ## \---------------------------------------------------------------------------/* ## Changelog ## Date Description ## ----- ------------- ## 9/11/2019 Program Setup - Created Lists ## Basic account input created and sanity test ## 9/12/2019 Added PIN check (simple) ## 9/13/2019 Added WHILE LOOP screen clear: cls() ## 9/14/2019 Added Account # loop and testing to see if the ## value is in the list or not or input is ## valid by length. ## Added help() to list account variables (this ## is more for you than for me, it would NOT ## exist in a real program. Instead there ## would be Post-IT notes for this information. ## Updated PIN check (advanced and now with fail!) ## Created functions for repetitive things ## Added Deposit (simple) - needs sanity checks ## 9/15/2019 Updated Deposit checks ## Added Withdrawal routine and checks ################################################################################# # Variables debug = 1 PIN_Max_Attempts=3 ################################################################################# ## System Variables - Do Not Edit Below This Line ############################### ################################################################################# ## Function - Clear Screen cludge def cls(): i = 0 while i < 39: # Default window size seems to be 40 lines print (" ") # Avoiding making sys() calls and just i += 1 # Carriage returning the screen clear ## Function - Output Account Lists if "?" is used in the Account input section def help(): cls() print ("--------------------------------------------------------") print ("|***************** Help: Account Info *****************|") print ("--------------------------------------------------------") print ("Account Pin Name ") print ("--------------------------------------------------------") i=0 while i < len(ACCOUNTS): print (""+ACCOUNTS[i]+" "+PINS[i]+" "+USERS[i]) i += 1 print (" ") print (" ") print ("** Realistically this wouldn't be here **") print ("--------------------------------------------------------") def header(): cls() print ("--------------------------------------------------------") print (" Name Account ") print ("--------------------------------------------------------") print (" "+USERS[ACCOUNT_POSITION]+" "+USER_ACCOUNT) print ("--------------------------------------------------------") def main_menu(): print ("--------------------------------------------------------") print ("Options: ") print (" 1. Fund Balance Inquiry") print (" 2. Deposit") print (" 3. Withdraw ") print (" 4. Quit") print ("--------------------------------------------------------") def balance_display(): print ("--------------------------------------------------------") print ("Balance: ") print (" Checking: $"+ str(BALANCE_Checking)) print (" Savings [1]: $"+ str(BALANCE_Savings_1)) print (" Savings [2]: $"+ str(BALANCE_Savings_2)) print ("--------------------------------------------------------") def ledger(): table_data = [ # https://docs.python.org/2.7/library/string.html#format-specification-mini-language # https://stackoverflow.com/questions/9989334/create-nice-column-output-in-python [' ', 'STARTING','TOTAL','TOTAL','ENDING'], ['TYPE', 'BALANCE','DEPOSITS','WITHDRAWLS','BALANCE'], ['----------','----------','----------','----------','----------'], ['Checking', str(STARTING_BALANCE_CHECKING), DEPOSIT_TALLY_CHECKING, WITHDRAWAL_TALLY_CHECKING, BALANCE_Checking], ['Savings[1]', str(STARTING_BALANCE_Savings_1), DEPOSIT_TALLY_SAVINGS_1, WITHDRAWAL_TALLY_SAVINGS_1, BALANCE_Savings_1], ['Savings[2]', str(STARTING_BALANCE_Savings_2), DEPOSIT_TALLY_SAVINGS_2, WITHDRAWAL_TALLY_SAVINGS_2, BALANCE_Savings_2], ['----------','----------','----------','----------','----------'], ['TOTALS','',DEPOSIT_TALLY_CHECKING+DEPOSIT_TALLY_SAVINGS_1+DEPOSIT_TALLY_SAVINGS_2,WITHDRAWAL_TALLY_CHECKING+WITHDRAWAL_TALLY_SAVINGS_1+WITHDRAWAL_TALLY_SAVINGS_2,'',] ] for row in table_data: print("{: >10} {: >10} {: >10} {: >10} {: >10}".format(*row)) def startup(): cls() print ("--------------------------------------------------------") print ("--------------------------------------------------------") print ("-------A.T.M.-------------------------------------------") print ("---------NOTE: All Input Via Numeric Keypad-------------") print ("--------------------------------------------------------") print ("|************| |************|") print ("|************| [ 7 ] [ 8 ] [ 9 ] |************|") print ("|************| |************|") print ("|************| [ 4 ] [ 5 ] [ 6 ] |************|") print ("|************| |************|") print ("|************| [ 1 ] [ 2 ] [ 3 ] |************|") print ("|************| |************|") print ("|************| [ 0 ] [ . ] [ ENTER ] |************|") print ("|************| |************|") print ("--------------------------------------------------------") ################################################################################# ## List Setup - User Accounts,Pins,Names ## Usage: ## List position dictates linkage between UA->Pin->Name ## Example: Entering 7654321 will match at position 3 below ## and will correspond with PIN 4567 and USER Hank Simpson ################################################################################# ## Ref: https://www.w3schools.com/python/python_arrays.asp #### Python doesn't do Arrays #### It does Lists. Let's do Lists ################################################################################# ACCOUNTS = ["1234567","8675309","6666666","7654321","5551212"] PINS = ["1234","2345","3456","4567","5678"] USERS = ["Brock Shumway","Gale Winds","Gustavo Adolpho","Hank Simpsons","Hector Lizondo"] TOTAL_ACCOUNTS = len(ACCOUNTS) TOTAL_PINS = len(PINS) TOTAL_USERS = len(USERS) ################################################################################# STARTING_BALANCE_CHECKING = 500 STARTING_BALANCE_Savings_1 = 1500 STARTING_BALANCE_Savings_2 = 5000 BALANCE_Checking = STARTING_BALANCE_CHECKING BALANCE_Savings_1 = STARTING_BALANCE_Savings_1 BALANCE_Savings_2 = STARTING_BALANCE_Savings_2 DEPOSIT_TALLY_CHECKING = 0 DEPOSIT_TALLY_SAVINGS_1 = 0 DEPOSIT_TALLY_SAVINGS_2 = 0 WITHDRAWAL_TALLY_CHECKING = 0 WITHDRAWAL_TALLY_SAVINGS_1 = 0 WITHDRAWAL_TALLY_SAVINGS_2 = 0 DEPOSIT_AMOUNT = 0 ################################################################################# ## User Input: Account #### http://introtopython.org/while_input.html ################################################################################# cls() #print ("#####") startup() WHILE_ACCOUNT_INPUT=0 while WHILE_ACCOUNT_INPUT == 0: USER_ACCOUNT = input("Please enter your seven digit Account Number or 0 to exit: ") # https://snakify.org/en/lessons/if_then_else_conditions/ if USER_ACCOUNT == '0': print ("You entered 0, exiting program.") quit() elif len(USER_ACCOUNT) < 7: if USER_ACCOUNT == "?": help() else: print ("The entered string was too short: " + str(len(USER_ACCOUNT))) elif len(USER_ACCOUNT) > 7: print ("The entered string was too long: " + str(len(USER_ACCOUNT))) else: print ("The entered string was correct: " + str(len(USER_ACCOUNT))) ######################################################### ### Length was correct, but is it a valid account? ### Check 'ACCOUNTS' list to see if typed in value exists ### We really don't care if the user put in alpha ### characters, it will fail the lookup. ######################################################### if USER_ACCOUNT not in ACCOUNTS: print ("Account not found") else: WHILE_ACCOUNT_INPUT=1 ##################################################### ## We have some valid input -> Find the position ##################################################### ACCOUNT_POSITION = ACCOUNTS.index(USER_ACCOUNT) #################################################### ## debug to dump out known elements to screen #################################################### if debug == 0: print ("Debugging Enabled") print ("Total Accounts: " + str(TOTAL_ACCOUNTS)) print ("Total Pins: " + str(TOTAL_PINS)) print ("Total Users: " + str(TOTAL_USERS)) print ("Entered Account: " +USER_ACCOUNT) print ("Account Position: " + str(ACCOUNT_POSITION)) print ("Pin at Pos " + str(ACCOUNT_POSITION) + ": " + PINS[ACCOUNT_POSITION]) print ("User at Pos " + str(ACCOUNT_POSITION) + ": " + USERS[ACCOUNT_POSITION]) cls() #################################################### # PIN Check #################################################### While_PIN_Input=0 PIN_Input_Fail=0 while While_PIN_Input==0: print ("Account: " +USER_ACCOUNT) User_PIN = input("Please enter your four digit PIN Number or 0 to exit: ") # https://snakify.org/en/lessons/if_then_else_conditions/ if User_PIN == '0': print ("You entered 0, exiting program.") quit() elif len(User_PIN) < 4: if User_PIN == "?": help() else: print ("The entered string was too short: " + str(len(User_PIN))) elif len(User_PIN) > 4: print ("The entered string was too long: " + str(len(User_PIN))) else: print ("The entered string was correct: " + str(len(User_PIN))) ######################################################### ### Length was correct, but is it a valid match for ? ### Check 'accounts' list to see if typed in value exists ### We really don't care if the user put in alpha ### characters, it will fail the lookup. ######################################################### if User_PIN == PINS[ACCOUNT_POSITION]: While_PIN_Input=1 else: PIN_Input_Fail=PIN_Input_Fail+1 if PIN_Input_Fail == PIN_Max_Attempts: cls() print ("*****************************************************************") print ("You have failed to enter a correct PIN. Please contact the bank.") print ("*****************************************************************") EXIT = input("Press ENTER to exit") quit() else: print ("Incorrect PIN. Attempt "+str(PIN_Input_Fail)+" of "+str(PIN_Max_Attempts)) ############################################################ ## If you are here, you are logged in ############################################################ ############################################################ # Two level while ## Level 1: main_menu area #### Level 2: each individual option ############################################################ WHILE_MAIN_MENU = 0 while WHILE_MAIN_MENU == 0: cls() header() main_menu() main_menu_input = input ("Enter your choice: ") print (main_menu_input) if main_menu_input == '4': print ("Selected Exit...") WHILE_MAIN_MENU = 1 elif main_menu_input == '1': print ("Selected Balance Inquiry...") cls() header() balance_display() EXIT = input("Press ENTER to return to Main Menu... ") elif main_menu_input == '?': print ("Selected Ledger Inquiry...") cls() header() ledger() EXIT = input("Press ENTER to return to Main Menu... ") elif main_menu_input == '2': ################################### DEPOSITS START ##################################### print ("Selected Deposits...") WHILE_DEPOSITS_MENU = 0 while WHILE_DEPOSITS_MENU == 0: cls() header() ########################### How much to deposit? print ("How much would you like to deposit?") DEPOSIT_AMOUNT = input ("[0 to return, max deposit is $1000]: ") if DEPOSIT_AMOUNT == '0': print ("!") WHILE_DEPOSITS_MENU=1 elif float(DEPOSIT_AMOUNT) > 1000: BAD_ENTRY = input ("Max entry is $1000. Press ENTER to continue") print ("!22") WHILE_DEPOSITS_MENU=1 else: ################################################ ## **** !!!!!!!! NEED TO ADD A TALLY SYSTEM FOR DEPOSITS ## DONE !!!!!!!! NEED TO ADD A 0 <> 1000 CHECK ################################################ print (" 1. Checking") print (" 2. Savings [1]") print (" 3. Savings [2]") print (" 4. Return to Menu [2]") ################################################ DEPOSIT_SELECTION = input ("Which acount would you like to make a deposit into? ") if DEPOSIT_SELECTION == '4': WHILE_DEPOSITS_MENU = 1 elif DEPOSIT_SELECTION == '1': BALANCE_Checking=float(DEPOSIT_AMOUNT) + float(BALANCE_Checking) DEPOSIT_TALLY_CHECKING = float(DEPOSIT_TALLY_CHECKING) + float(DEPOSIT_AMOUNT) DEPOSIT_AMOUNT = 0 WHILE_DEPOSITS_MENU = 1 elif DEPOSIT_SELECTION == '2': BALANCE_Savings_1=float(DEPOSIT_AMOUNT) + float(BALANCE_Savings_1) DEPOSIT_TALLY_SAVINGS_1 = float(DEPOSIT_TALLY_SAVINGS_1) + float(DEPOSIT_AMOUNT) DEPOSIT_AMOUNT = 0 WHILE_DEPOSITS_MENU = 1 elif DEPOSIT_SELECTION == '3': BALANCE_Savings_2=float(DEPOSIT_AMOUNT) + float(BALANCE_Savings_2) DEPOSIT_TALLY_SAVINGS_2 = float(DEPOSIT_TALLY_SAVINGS_2) + float(DEPOSIT_AMOUNT) DEPOSIT_AMOUNT = 0 WHILE_DEPOSITS_MENU = 1 ################################### DEPOSITS END ##################################### elif main_menu_input == '3': ################################### WITHDRAWALS START ##################################### print ("Selected Deposits...") WHILE_WITHDRAWALS_MENU = 0 while WHILE_WITHDRAWALS_MENU == 0: cls() header() ########################### How much to withdraw? ############################### # Withdraw amounts can only be $20, $40, $60, $80, or $100. # Cannot withdraw more money than what exists in the account. # Total withdraws from a single account cannot exceed $300. # Total withdraws from ALL accounts cannot exceed $750. ################################################################################# WITHDRAWAL_AMOUNT = 0 #Reset ################################################################################## ######### Total withdraws from ALL accounts cannot exceed $750. ######### Let's just check it as it comes into the menu, if you don't have the $, ######### don't waste time going through the tree ################################################################################## if WITHDRAWAL_TALLY_CHECKING+WITHDRAWAL_TALLY_SAVINGS_1+WITHDRAWAL_TALLY_SAVINGS_2+20 > 750: print ("Any more transactions will exceed your daily withdrawal limit.") EXIT = input("Press ENTER to return to Main Menu... ") WHILE_WITHDRAWALS_MENU=1 else: print ("------------------------------------") print (" 1. $20 4. $80") print (" 2. $40 5. $100") print (" 3. $60 0. Return to Menu") print ("------------------------------------") WITHDRAWAL_AMOUNT_SELECTION = input ("How much would you like to withdraw? ") if WITHDRAWAL_AMOUNT_SELECTION == '0': print ("!") WHILE_WITHDRAWALS_MENU=1 elif WITHDRAWAL_AMOUNT_SELECTION == '1': WITHDRAWAL_AMOUNT = 20 elif WITHDRAWAL_AMOUNT_SELECTION == '2': WITHDRAWAL_AMOUNT = 40 elif WITHDRAWAL_AMOUNT_SELECTION == '3': WITHDRAWAL_AMOUNT = 60 elif WITHDRAWAL_AMOUNT_SELECTION == '4': WITHDRAWAL_AMOUNT = 80 elif WITHDRAWAL_AMOUNT_SELECTION == '5': WITHDRAWAL_AMOUNT = 100 else: WHILE_WITHDRAWALS_MENU=1 if WHILE_WITHDRAWALS_MENU == 0: ######### Total withdraws from ALL accounts cannot exceed $750. if WITHDRAWAL_TALLY_CHECKING+WITHDRAWAL_TALLY_SAVINGS_1+WITHDRAWAL_TALLY_SAVINGS_2+WITHDRAWAL_AMOUNT > 750: print ("This transaction will exceed your daily withdrawal limit.") EXIT = input("Press ENTER to return to Main Menu... ") WHILE_WITHDRAWALS_MENU=1 if WHILE_WITHDRAWALS_MENU == 0: ##### WHICH ACCOUNT? ###### print ("------------------------------------") print (" 1: CHECKING ") print (" 2: SAVINGS[1]") print (" 3: SAVINGS[2]") print (" ") print (" 0: Return to Menu") print ("------------------------------------") WITHDRAWAL_SELECTION = input ("Which account would you like to make a withdrawal from? ") if WITHDRAWAL_SELECTION == '0': print ("!") WHILE_WITHDRAWALS_MENU=1 # Cannot withdraw more money than what exists in the account. # Total withdraws from a single account cannot exceed $300. elif WITHDRAWAL_SELECTION == '1': print ("CHECKING") if WITHDRAWAL_AMOUNT + WITHDRAWAL_TALLY_CHECKING > 300: print ("You have exceeded your daily individual account withdrawal limit.") EXIT = input("Press ENTER to return to Main Menu... ") WHILE_WITHDRAWALS_MENU=1 elif BALANCE_Checking - WITHDRAWAL_AMOUNT < 0: print ("Insufficient funds..") EXIT = input("Press ENTER to return to Main Menu... ") WHILE_WITHDRAWALS_MENU=1 else: WITHDRAWAL_TALLY_CHECKING = WITHDRAWAL_TALLY_CHECKING+WITHDRAWAL_AMOUNT BALANCE_Checking = BALANCE_Checking-WITHDRAWAL_AMOUNT elif WITHDRAWAL_SELECTION == '2': print ("SAVINGS[1]") if WITHDRAWAL_AMOUNT + WITHDRAWAL_TALLY_SAVINGS_1 > 300: print ("You have exceeded your daily individual account withdrawal limit.") EXIT = input("Press ENTER to return to Main Menu... ") WHILE_WITHDRAWALS_MENU=1 elif BALANCE_Savings_1 - WITHDRAWAL_AMOUNT < 0: print ("Insufficient funds..") EXIT = input("Press ENTER to return to Main Menu... ") WHILE_WITHDRAWALS_MENU=1 else: WITHDRAWAL_TALLY_SAVINGS_1 = WITHDRAWAL_TALLY_SAVINGS_1+WITHDRAWAL_AMOUNT BALANCE_Savings_1 = BALANCE_Savings_1-WITHDRAWAL_AMOUNT elif WITHDRAWAL_SELECTION == '3': print ("SAVINGS[1]") if WITHDRAWAL_AMOUNT + WITHDRAWAL_TALLY_SAVINGS_2 > 300: print ("You have exceeded your daily individual account withdrawal limit.") EXIT = input("Press ENTER to return to Main Menu... ") WHILE_WITHDRAWALS_MENU=1 elif BALANCE_Savings_2 - WITHDRAWAL_AMOUNT < 0: print ("Insufficient funds..") EXIT = input("Press ENTER to return to Main Menu... ") WHILE_WITHDRAWALS_MENU=1 else: WITHDRAWAL_TALLY_SAVINGS_2 = WITHDRAWAL_TALLY_SAVINGS_2+WITHDRAWAL_AMOUNT BALANCE_Savings_2 = BALANCE_Savings_2-WITHDRAWAL_AMOUNT else: WHILE_WITHDRAWALS_MENU=1 #### If you're here, you exited the main_menu cls() ledger() print ("") print ("Thank you and have a good day.")