"""
用户可登陆系统
输错三次锁定账号

用户可以创建新的用户名密码
新用户初始账户设为0
新用户可直接登陆系统

用户登陆成功后可以选择业务类型
用户数据可以根据业务修改

输入Q随时退出
"""
name_list = ["zhangdada","wangxiaoxiao","lizhongzhong"]
pwd_list = ["123","456","789"]
info = ["1:存款","2:取款","3:转账","4:查询"] # 用户账户数据
bank = {
"zhangdada":{
"name":"zhangdada",
"money":10000,
},
"lizhongzhong":{
"name":"lizhongzhong",
"money":45000,
},
"wangxiaoxiao":{
"name":"wangxiaoxiao",
"money":200000,
},
} # 程序主循环
tag = True
while True: print("*"*20)
print("欢迎使用本系统\n用户登陆请输入1\n新用户注册请输入2\n退出请输入Q")
print("*"*20)
choose = input("请选择类型:").strip() if choose == "Q": # 退出行
tag = False
print("欢迎下次使用")
break # 新用户注册
if choose == "2":
while True:
name_new = input("请创建用户名:").strip()
if name_new in name_list:
print("用户名已存在请重新输入!")
continue
else:
pwd_new = input("请设置密码:").strip()
if pwd_new in pwd_list:
print("密码重复,请重新来过!")
continue
else:
name_list.append(name_new)
pwd_list.append(pwd_new)
bank[name_new] = {}
bank[name_new]["name"] = name_new
bank[name_new]["money"] = 0
print("——"*15)
print("用户创建成功!")
print("——" * 15)

que = input("直接登入请输入#").strip() # 直接登入选项
if que == "#":
choose = "1"
name = name_new
pwd = pwd_new
break elif choose == "1" :
break
else:
print("输入错误,请重新来过!") # 登陆部分和业务处理
i = 0
while tag: name = input("请输入你的用户名:").strip()
pwd = input("请输入你的密码:").strip() if name == "Q" or pwd == "Q": # 退出条件
tag = False
print("欢迎下次使用")
break if i >= 2: # 输入次数判断
print("您今日的次数已用完,账户锁定!")
break if name not in name_list or pwd not in pwd_list: # 登录逻辑
i += 1
print("用户名或者密码错误!")
continue
else:
print("——" * 15)
for i in info: # 业务逻辑展示
print("****%s*****" % i) while tag: # 业务逻辑循环
print("——"*15)
print("——"*15)
yewu = input("请输入你要办理的业务对应数字:").strip()
print("——" * 15)
print("——" * 15) if yewu == "Q": # 退出条件
tag = False
break if yewu == "2": # 取款操作
number_1 = input("请输入取款金额:").strip()
if number_1 < str(bank[name]["money"]):
print("余额不足!")
continue
else:
print("您已取款:1000元")
bank[name]["money"] -= int(number_1) elif yewu == "1": # 存款操作
number_2 = input("请输入存款金额:").strip()
bank[name]["money"] += int(number_2)
print(" 您当前账户余额为:%s" % bank[name]["money"]) elif yewu == "3": # 转账操作
name_zhuanzhang = input("请输入转账的用户名:").strip()
if name_zhuanzhang not in name_list:
print("该用户不存在,请重新输入!")
else:
print("请确认用户%s" % name_zhuanzhang)
money = input("请输入转账金额:").strip()
bank[name]["money"] -= int(money)
bank[name_zhuanzhang]["money"] += int(money)
print("转账成功!")
print("您当前账户余额为:%s" % bank[name]["money"]) elif yewu == "4": # 查询操作
print("您当前账户余额为:%s" % bank[name]["money"])
else:
print("输入错误,请从新输入")

python之极简ATM系统示例的更多相关文章

  1. 类别不平衡问题之SMOTE算法(Python imblearn极简实现)

    类别不平衡问题类别不平衡问题,顾名思义,即数据集中存在某一类样本,其数量远多于或远少于其他类样本,从而导致一些机器学习模型失效的问题.例如逻辑回归即不适合处理类别不平衡问题,例如逻辑回归在欺诈检测问题 ...

  2. 流动python - 一个极简主义event制

    event至少该系统的核心,以满足: 1.存储容器事件,可以被添加到事件来删除 2.触发事件fire 守则. class Event(list): def __call__(self, *args, ...

  3. 极简Word排版示例(以Word2013为例)

    文档标题 第一行写下文档的名字,居中,微软雅黑字体,三号 章节标题 每一章的标题单独一行,光标选中这行,设置为标题1 每一节的标题单独一行,光标选中这行,设置为标题2 全部章节标题设置完毕后,下一步 ...

  4. Python面向对象 组合(选课系统示例)

    # Author : Kelvin # Date : 2019/1/15 20:44 """ 学校与老师关联 课程与老师和学校关联 """ ...

  5. 工具(1): 极简Word排版示例(Example by Word2013)

    文档标题 第一行写下文档的名字,居中,微软雅黑字体,三号 章节标题 每一章的标题单独一行,光标选中这行,设置为标题1 每一节的标题单独一行,光标选中这行,设置为标题2 全部章节标题设置完毕后,下一步 ...

  6. Python 极简教程(八)字符串 str

    由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...

  7. [开发技巧]·Python极简实现滑动平均滤波(基于Numpy.convolve)

    [开发技巧]·Python极简实现滑动平均滤波(基于Numpy.convolve) ​ 1.滑动平均概念 滑动平均滤波法(又称递推平均滤波法),时把连续取N个采样值看成一个队列 ,队列的长度固定为N ...

  8. 你一定看得懂的 DDD+CQRS+EDA+ES 核心思想与极简可运行代码示例

    前言 随着分布式架构微服务的兴起,DDD(领域驱动设计).CQRS(命令查询职责分离).EDA(事件驱动架构).ES(事件溯源)等概念也一并成为时下的火热概念,我也在早些时候阅读了一些大佬的分析文,学 ...

  9. 极简 Node.js 入门 - 1.2 模块系统

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

随机推荐

  1. Prettier All In One

    Prettier All In One .prettierrc.js / .prettierrc / .prettierrc.json module.exports = { singleQuote: ...

  2. 1 line of CSS Layouts

    1 line of CSS Layouts 10 modern layouts in 1 line of CSS 1. 绝对居中布局 <div class="container&quo ...

  3. Flutter Hackathon 2020

    Flutter Hackathon 2020 https://flutterhackathon.com/#/ Flutter Day https://mp.weixin.qq.com/s/ux17-A ...

  4. base 64 bug & encodeURIComponent

    base64 bug & encodeURIComponent window.btoa("jëh²H¶�%28"); // "autoskiptoclMjiu&q ...

  5. How to get a DOM element's ::before content with JavaScript?

    How to get a DOM element's ::before content with JavaScript? https://stackoverflow.com/questions/443 ...

  6. 2020 web developer roadmap

    2020 web developer roadmap https://github.com/kamranahmedse/developer-roadmap https://roadmap.sh/ ht ...

  7. flutter 让app跟随系统的theme

    首先你需要在"MaterialApp"设置两套theme MaterialApp( theme: myTheme, // light darkTheme: ThemeData.da ...

  8. ES进行date_histogram时间聚合,聚合结果时间不正确问题

    在做项目中,有一个需求是统计本周内每天的漏洞数量,我选用的是ES中的date_histogram函数来进行聚合统计: 但是出现了一个问题,聚合出来的结果和想要统计的结果时间不一致,如下图所示 时间区间 ...

  9. Spring 中的 MetaData 接口

    什么是元数据(MetaData) 先直接贴一个英文解释: Metadata is simply data about data. It means it is a description and co ...

  10. 漫画 | C语言哭了,过年回家,只有我还没对象

    C语言回家过年,遇到不少小伙伴. 大家都在外地打拼,一年难得见面,聚到一起吃饭,都非常高兴. 听Java提到TIOBE, 正在喝酒的C语言激动起来. 自己常年在那里排名第二,人类用自己写的程序可真不少 ...