# [问答] 在“ATM”程序中使用什么方法

© py晓枫 管理员   /  2018-12-5 17:03  /

### 在“ATM”程序中使用什么方法

``````print("Hello, and welcome to the ATM machine!\n")

a_pin = {1111, 2222, 3333, 4444}

def process():
if pin in a_pin:
if pin == (1111):
f = open("a.txt", "r")
elif pin == (2222):
f = open("b.txt", "r")
elif pin == (3333):
f = open("c.txt", "r")
elif pin == (4444):
f = open("d.txt", "r")
print(
"""
2: make a withdraw
3: make a deposit
4: exit

""")

option = input("\nwhat would you like to do? ")

if option == "1":
elif option == "2":
y = str(input("\nHow much would you like you like to withdraw? "))
f.write(y)
elif option == "3":
z = str(input("\nHow much would you like to deposit? "))
f.write(z)
elif option == "4":
input("Please press the enter key to exit.")

else:
print("\nthat was a wrong pin number!")
x = input("\nwould you like to try again? '(y/n)' ")
if x == "y":
process()
else:
input("\npress the enter key to exit.")

process()``````

### 解决方法

``````if pin == (1111):
f = open("a.txt", "r+")
elif pin == (2222):
f = open("b.txt", "r+")
elif pin == (3333):
f = open("c.txt", "r+")
elif pin == (4444):
f = open("d.txt", "r+")``````

``````# read current balance from file and save its value
bal = float(f.read().strip('\n'))  # or replace float() with int()

# reset file pointer to beginning of file before updating contents
f.seek(0)

if option == '1':
elif option == '2':
y = str(input("\nHow much would you like you like to withdraw? "))
bal -= int(y)            # calculate new balance
f.write(str(bal)+'\n')   # write new balance to file as a string