自己写的练手小程序,练习面向对象的概念,代码中都有注释,刚学的同学也可以很容易看懂(需要自己用pickle模块新建一个database.txt文件,用来存储用户数据信息)。
import random
from card import Card
from user import User
import time
class ATM(object):
def __init__(self, allUsersInfo):
self.allUsersInfo = allUsersInfo
def checkPwd(self, realPwd):
myList = [3, 2, 1, 0]
for i in myList:
if i == 0:
return False
rePass = input('请再次输入密码:')
if realPwd == rePass:
return True
elif (i - 1) != 0:
print('输入错误,你还有%d次输入的机会!' % (i - 1))
def randomId(self):
while True:
str = ''
for i in range(6):
ch = chr(random.randrange(ord('0'), ord('9') + 1))
str += ch
if not self.allUsersInfo.get(str):
return str
def createUser(self):
try:
name = input('请输入姓名:')
idCard = input('请输入身份证号码:')
phone = input('请输入电话号码:')
preMoney = int(input('请输入预存金额:'))
if preMoney < 0:
print('预存金额有误,开户失败!')
return -1
onePwd = input('请输入密码:')
twoPwd = self.checkPwd(onePwd)
if not twoPwd:
print('确认密码错误,开户失败!')
return -1
cardStr = self.randomId()
card = Card(cardStr, onePwd, preMoney)
user = User(name, idCard, phone, card)
self.allUsersInfo[cardStr] = user
time.sleep(1)
print('开户成功,请牢记卡号({})...'.format(cardStr))
except Exception as e:
print('抱歉,系统出现故障,暂时无法操作!')
return
def isExistence(self, cardStrInp):
if self.allUsersInfo.get(cardStrInp):
return True
else:
print('卡号不存在!')
return False