0%

python-账户类

定义一个账户类,可以创建账户、存款、取款 、查询余额、以及销户等操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
定义一个账户类,可以创建账户、存款、取款 、查询余额、以及销户等操作

类名: Bank()
属性: 姓名、密码、钱
方法:
创建账户:
输入姓名
输入密码
确认密码
用户存在:
提示,并重新创建一个
密码不一致:
提示,重来
否则:
成功,将用户信息添加到字典里面
存款
输入姓名
输入密码
用户不存在:
提示,重来
密码不正确:
提示,重来
否则:
输入存款金额
现在的钱 = 原来的钱 + 存钱
取款
输入姓名
输入密码
用户不存在:
提示,重来
密码不正确:
提示,重来
否则:
输入取款金额
取款 > 原来的钱:
提示余额不足
取款的钱 <= 余额
现在的钱 = 原来的钱 - 取的钱
查询余额:
输入姓名
输入密码
用户不存在:
提示,重来
密码不正确:
提示,重来
否则:
根据姓名打印对应的键值对


以及销户
对象=类名()

思考:如何获取用户所需的操作?---> input()
尽可能的吧代码放到类里面封装起来

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
class Bank():

def __init__(self,name=None, password=None, money=0):
"""
当对象被创建的时候,init里面的代码会自动执行
:param name:
:param password:
:param money:
思考:如何保存用户信息--->字典
"""
# 刚开始什么都没有,所以设置初始化值为空 None
self.name = name
self.password = password
self.money = money
# {name1:[password1, money1], name2:[password2, money2]}
self.user_dicts = {}
print(self.user_dicts)
# 调用选择的方法
self.choose()

def choose(self):
# 选择的方法
while True:
a = input("""
1、创建账户 2、存款 3、取款
4、查询 5、销户 6、退出
请输入对应的数字,选择你想要的服务:""")
if a == "1":
self.create_user()
elif a == "2":
self.save()
elif a == "3":
self.get_money()
elif a == "4":
self.ask()
elif a == "5":
self.del_user()
elif a == "6":
break
else:
print("输入有误请重试")

def create_user(self):
"""
输入名字
:return:
"""
# print("创建用户的方法")
self.name = input("请输入你的姓名:")
self.passwd1 = input("请输入你的密码:")
passwd2 = input("请再次输入确认你的密码:")
if self.name in self.user_dicts:
print("用户已存在,请重试") # 请重试---重新创建账户
self.create_user() # 重新调用创建用户的方法
if self.passwd1 != passwd2:
print("两次密码不一致,请重试!")
self.create_user()
else:
# 将用户信息构造成一个字典,添加到包存用户的字典里面
user = {self.name:[self.passwd1, self.money]}
# update() 如果健名不存在则新增键值对
self.user_dicts.update(user)
print("用户创建成功")
print(self.user_dicts)

def save(self):
# print("存款的方法")
name = input("请输入你的姓名:")
passwd = input("请输入你的密码:")
if name not in self.user_dicts:
print("用户不存在,请重试!") # 重试 --- 重新存款
self.save()
if self.user_dicts[name][0] != passwd:
print("密码不正确,请重试")
self.save()
else:
money = float(input("请输入要存的金额: "))
self.money = self.user_dicts[name][1] + money
# 注意:需要更改字典里面的值
# dict[name] = [passwd,money]
self.user_dicts.update({name:[passwd,self.money]})
print(self.user_dicts)

def get_money(self):
# print("取款的方法")
name = input("请输入你的姓名:")
passwd = input("请输入你的密码:")
money = float(input("请输入要取的金额: "))
if name not in self.user_dicts:
print("用户不存在,请重试!") # 重试 --- 重新存款
self.get_money()
elif self.user_dicts[name][0] != passwd:
print("密码不正确,请重试")
self.get_money()
elif money > self.user_dicts[name][1]:
print("抱歉,余额不足,请重试")
self.get_money()
else:
self.money = self.user_dicts[name][1] - money
# 注意:需要更改字典里面的值
# dict[name] = [passwd,money]
self.user_dicts.update({name: [passwd, self.money]})
print(self.user_dicts)

def ask(self):
# print("查询的方法")
name = input("请输入你的姓名:")
passwd = input("请输入你的密码:")
if name not in self.user_dicts:
print("用户不存在,请重试!") # 重试 --- 重新存款
self.ask()
if self.user_dicts[name][0] != passwd:
print("密码不正确,请重试")
self.ask()
else:
money = self.user_dicts[name][1]
print(f"您当前余额为{money}")

def del_user(self):
# print("销户的方法")
name = input("请输入你的姓名:")
passwd = input("请输入你的密码:")
if name not in self.user_dicts:
print("用户不存在,请重试!") # 重试 --- 重新存款
self.del_user()
if self.user_dicts[name][0] != passwd:
print("密码不正确,请重试")
self.del_user()
else:
del self.user_dicts[name]
print(self.user_dicts)


if __name__ == '__main__':
# 实例化一个对象
lm = Bank()

运行结果如下: