python atm作业详解

阅读: 评论:0

python atm作业详解

python atm作业详解

# -*- 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机!")

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:

<()

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()

不得不说

确实简洁好多

加油!

本文发布于:2024-02-03 09:02:39,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170692215950015.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:作业   详解   python   atm
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23