1. 简介
利用Python实现了一个简易的银行操作系统。
设定每个用户只能拥有一张银行卡。
利用pickle模块实现数据持久化存储。
2. bank文件
import os
import pickle
import random
file_name = r"account.txt"
卡类
class Card:
def __init__(self, card_number, password):
self.card_number = card_number
self.password = password
self.amount = 10 # 默认余额为10
self.lock = False # 默认未锁卡
def __str__(self):
return f"卡号 = {self.card_number}, 密码 = {self.password}, 余额 = {self.amount}, 是否锁定 = {self.lock}"
__repr__ = __str__
账户类
class Account:
def __init__(self, user_name, identity_num, card):
self.user_name = user_name
self.identity_num = identity_num
self.card = card
def __str__(self):
return f"姓名 = {self.user_name}, 身份证号 = {self.identity_num}, 卡 = {self.card}"
__repr__ = __str__
操作类
class Operation:
def __init__(self, user_info):
self.user_info = user_info
if os.path.exists(file_name): # 若已开户,加载用户信息
with open(file_name, "rb") as rf:
self.__user_dict = pickle.load(rf)
else: # 若未开户,初始化
self.__user_dict = {
}
print(self.__user_dict)
def __save_user(self): # 保存用户信息
with open(file_name, "wb") as sf:
pickle.dump(self.__user_dict, sf)
def __pwd_judge(self, pwd): # 验证密码格式是否正确
return True if pwd.isdigit() and len(pwd) == 6 else False
def __check_pwd(self, card): # 验证密码是否匹配。连续三次输错会将银行卡锁定。
count = 0
while count < 3:
input_password = input("请输入密码: ")
if input_password == card.password:
return True
else:
print("密码错误,请重新输入")
count += 1
else:
card.lock = True
self.__save_user()
print(