# -*- encoding: utf-8 -*-
# Author:MENG LING
#ATM界面
def ATM():
"""ATM欢迎界面的函数"""
print("="*14,"Bank of ABC","="*14,"\n")
print("{:^42}".format("welcome my ATM"),"\n")
print("="*14,"Bank of ABC","="*14,"\n")
#用户信息
user_list =[
{"name":"root","balance":10000,"password":"111"},
{"name":"admin","balance":30000,"password":"123"}
]
#验证密码是否正确
def check(user_name,user_password):
"""验证用户名与密码匹配的函数"""
for i in range(len(user_list)):
if user_name == user_list[i]["name"] and user_password == user_list[i]["password"]:
return i #密码匹配上返回id值,否则返回None值
#定义用户登录成功后操作界面的函数
def interface():
"""用户登录成功后操作界面的函数"""
print("="*14,"用户操作界面","="*14,"\n")
print("1. 查询")
print("2. 取款")
print("3. 存款")
print("4. 退出")
print("="*42,"\n")
#定义用户查询信息的函数
def inquire(user_id):
"""查询账户余额"""
print("%s账户名的余额是:%d元"%(user_list[user_id]["name"],user_list[user_id]["balance"]))
print("")
#定义取款函数
def withdrawal(money):
"""定义取款"""
i = user_list[user_id]["balance"] - int(money)
if i >= 0:
user_list[user_id]["balance"] -= int(money)
else:
print("账户余额不足\n")
#定义存款函数:
def fund(money):
user_list[user_id]["balance"] += int(money)
chance = 3 #允许3次用户名或密码输入错误
while True:
ATM()
user_name = input("请输入您的用户名:")
user_password = input("请输入您的账户密码:")
user_id = check(user_name,user_password)
if user_id != None:
print("登录成功\n")
while True:
# 1\ 打印功能提示
interface()
# 2\ 获取用户选择
num = int(input("please put num:"))
# 3\ 根据用户选择做出相应功能
if num == 1:
inquire(user_id)
elif num ==2:
money = input("请输入取款金额:")
withdrawal(money)
inquire(user_id)
elif num ==3:
money = input("请输入存款金额:")
fund(money)
print("%s账户存入%s元成功"%(user_list[user_id]["name"],money))
inquire(user_id)
elif num ==4:
exit()
else:
print("你输入的号码不存在,请重新输入!")
#3次输错密码退出
else:
print("账号或者密码错误\n")
if chance >1:
print("用户名或密码错误,您还有",chance-1,"次机会,请重新输入\n")
chance-=1
else:
print("对不起,您输入用户名或密码错误已达3次")
break
上面是第一版自己写的函数版本的,后来在朋友的指导下又写了一版类和方法的:
# -*- encoding: utf-8 -*-
# Author:MENG LING
class ATM():
def __init__(self):
self.name = "root"
self.passwd = '111'
self.balance = 10000
def login(self):
for i in range(3):
name = input("请输入账号:")
passwd = input("请输入密码:")
if self.name == name and self.passwd == passwd:
print("欢迎进入ATM机!")
self.menu()
else:
print("输入错误!")
def menu(self):
print("=" * 14, "用户操作界面", "=" * 14, "\n")
print("1. 查询")
print("2. 取款")
print("3. 存款")
print("4. 退出")
print("=" * 42, "\n")
while True:
num = int(input("请输入相应的值:"))
if num == 1:
self.yue()
elif num ==2:
self.get()
elif num ==3:
self.save()
elif num ==4:
print("欢迎下次光临!")
exit()
else:
print("输入号码错误!")
def yue(self):
print("账户当前的余额为:%d"%(self.balance))
def get(self):
money = input("请输入取款金额:")
i = self.balance - int(money)
if i >= 0:
self.balance -= int(money)
self.yue()
else:
print("余额不足!")
def save(self):
money = input("请输入存款金额:")
self.balance += int(money)
print("已存入 {%s} ,余额为 {%s}"%(money,self.balance))
if __name__ == '__main__':
atm = ATM()
atm.login()
不得不说
确实简洁好多
加油!