如何使用Python实现ATM系统
小编给大家分享一下如何使用Python实现ATM系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
案例剖析:
1.atm主页面显示.2.账号验证.3.查询余额.4.存款.5.取款.6.修改密码.
ps:我的思路是将以上的功能分成几大块,通过函数,循环和返回值来实现,话不多说直接上代码.
代码:
1.atm主页面显示
defindex(nowUser): print('='*10,'自动存取款机','='*10) print(getName(nowUser),'欢迎登陆!') print('{:<10}{:^10}{:<10}'.format('1.修改密码','','2.查询余额')) print('{:<10}{:^12}{:<10}'.format('3.存钱','','4.取钱')) print('输入\'exit\'退出操作')
ps:使用format来进行格式的定义.
2.账号验证
defgetId(nowUser): '''获取当前用户在列表中的位置''' index=-1 foriinrange(len(userList)): ifuserList[i]['cardid']==nowUser: index=i#如果用户存在则返回它在列表中的下标 break returnindex#如果用户不存在则返回-1 defgetName(nowUser): '''获取用户姓名''' index=getId(nowUser) returnuserList[index]['name'] defcheckUser(cardid,password): '''自定义用户检测功能,包括卡号及密码检测''' index=getId(cardid) ifindex==-1:#如果用户不存在 return'noCardId'#卡号不存在 else: ifuserList[index]['cardid']==cardidanduserList[index]['password']==password:#用户存在并且账号密码正确 return'login'#密码正确 else: return'errorPW'#密码错误
ps:使用循环和返回值来进行账号的对比和检测.
3.查询余额
defshowMoney(nowUser): '''查询余额''' index=getId(nowUser) print('您当前的账户余额为:',userList[index]['money'],'元')
4.存钱
defsaveMoney(nowUser,money): '''存钱''' index=getId(nowUser) print("输入的金额是:",money) userList[index]['money']+=int(money) print('存入成功!')
5.取钱
defdrawMoney(nowUser,money): '''取钱''' index=getId(nowUser) nowMoney=userList[index]['money'] ifnowMoney>=int(money): userList[index]['money']-=int(money) print('已取出',money,'元') else: print('账户余额不足!')
6.修改密码
defchangePW(nowUser,newPW): '''修改密码''' index=getId(nowUser) userList[index]['password']=newPW
7.定义用户操作函数
#用户操作 defuserChoice(nowUser): choices=['1','2','3','4','exit'] #循环获取用户操作 whileTrue: index(nowUser) choice=input('请选择操作:') ifchoice=='1':#选择修改密码 oldPW=input('请输入原始密码:') flag=checkUser(nowUser,oldPW) ifflag=="errorPW": #print('密码错误!请重新输入,或输入\'back\'返回上一级') print('密码错误!返回主界面') elifflag=='login': changePW(nowUser,input('请输入新密码:')) print('修改密码成功!') continue elifchoice=='2':#选择查询余额 showMoney(nowUser) continue elifchoice=='3':#选择存钱 saveMoney(nowUser,input('请输入存入金额:')) continue elifchoice=='4':#选择取钱 drawMoney(nowUser,input('请输入取出金额:')) continue elifchoice=='exit': main()#返回主界面 elifchoicenotinchoices: print('错误操作,请重新输入选项!') continue
8.定义main主函数
#主界面 defmain(): #定义错误次数 errorTime=0 iferrorTime>=3:#错误次数达三次退出系统后清零 errorTime=0 whileTrue: #crs登陆主界面 print('='*10,'自动存取款机','='*10) nowUser='' #用户输入卡号和密码 cardid=input('请输入卡号:') password=input('请输入密码:') #判断卡号密码是否存在正确 #卡号不存在 flag=checkUser(cardid,password) ifflag=='noCardId': print('卡号不存在!请重新输入') continue #密码错误 elifflag=='errorPW': errorTime+=1 print('密码错误!错误次数达三次将自动退出本系统!') print("错误次数:",errorTime) iferrorTime>=3:#错误次数达三次自动退出 print('密码输错三次,自动退出系统!') exit(0) continue #卡号密码正确进入系统 else: nowUser=cardid userChoice(nowUser)
9.最后定义函数主入口,进行ATM系统的测试
if__name__=='__main__': main()
收获:
通过ATM案例 ,将之前学习的Python基础重新进行了一次巩固,梳理和融会贯通,个人感觉 Python的函数和返回值是个特别神奇的东西,当然这个案例还有很大的改进空间,大家有什么好的建议也可以给我留言,我之后会慢慢进行改良哒!
以上是“如何使用Python实现ATM系统”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
Python多线程抓取代理服务器
Python作为一门功能强大的脚本语言来说,经常被用来写爬虫程序,下面是Python爬虫多线程抓取代理服务器。年前是用//lin...
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
本篇文章给大家分享的是有关python中变量的存储原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有...
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
这篇文章主要介绍“python怎么实现批量文件加密功能”,在日常操作中,相信很多人在python怎么实现批量文件加密功能问题上存在...
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...