# Bank ATM program in Python

For homework, I have to code a program in Python that effectively simulates a bank ATM.

print('Welcome to Northen Frock Bank ATM')
restart=('Y')
chances = 3
balance = 67.14
while chances >= 0:
pin = int(input('Please Enter You 4 Digit Pin: '))
if pin == (1234):
print('You entered you pin Correctly\n')
while restart not in ('n','NO','no','N'):
print('Please Press 2 To Make a Withdrawl\n')
print('Please Press 3 To Pay in\n')
print('Please Press 4 To Return Card\n')
option = int(input('What Would you like to choose?'))
if option == 1:
restart = input('Would You you like to go back? ')
if restart in ('n','NO','no','N'):
print('Thank You')
break
elif option == 2:
option2 = ('y')
withdrawl = float(input('How Much Would you like to
withdraw? \nÂ£10/Â£20/Â£40/Â£60/Â£80/Â£100 for other enter 1: '))
if withdrawl in [10, 20, 40, 60, 80, 100]:
balance = balance - withdrawl
print ('\nYour Balance is now Â£',balance)
restart = input('Would You you like to go back? ')
if restart in ('n','NO','no','N'):
print('Thank You')
break
elif withdrawl != [10, 20, 40, 60, 80, 100]:
restart = ('y')
elif withdrawl == 1:
withdrawl = float(input('Please Enter Desired amount:'))

elif option == 3:
Pay_in = float(input('How Much Would You Like To Pay In? '))
balance = balance + Pay_in
print ('\nYour Balance is now Â£',balance)
restart = input('Would You you like to go back? ')
if restart in ('n','NO','no','N'):
print('Thank You')
break
elif option == 4:
print('Thank you for you service')
break
else:
print('Please Enter a correct number. \n')
restart = ('y')
elif pin != ('1234'):
chances = chances - 1
if chances == 0:
print('\nNo more tries')
break


This program basically does what it is designed to do, but I want to learn how to use the def() and do it this way.

• this program didnot run it is syntax error in elif option==2:
– user93231
Dec 26 '15 at 3:34

The best way to do this would be to take each of your sections, and give them each a function of their own. Also, when it's possible, separate user input functions from purely logic to improve readability!

For example, it could start looking like this:

def verify_pin(pin):
if pin == '1234':
return True
else:
return False

def log_in():
tries = 0
while tries < 4:
if verify_pin(pin):
print("Pin accepted!")
return True
else:
print("Invalid pin")
tries += 1
return False