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 | import os
import json
db = './db.json'
class XiTong():
def __init__(self):
"""初始读取密码文件"""
self.data = self.get_db()
def save_db(self):
"""保存账号密码"""
if not self.data:
return
with open(db, 'w') as f:
f.write(json.dumps(self.data))
def get_db(self):
"""读取账号密码"""
if not os.path.isfile(db):
with open(db, 'w') as f:
f.write('')
# os.mknod(db)
with open(db) as f:
data = f.read()
if data:
data = json.loads(data)
else:
data = {}
return data
def login(self, username, password):
"""登录"""
if username not in self.data:
print('账号尚未注册,请重新输入')
return False
if password != self.data[username]:
print('账号不正确,请重新输入')
return False
print('登录成功')
return True
def register(self, username, password):
"""注册"""
if self.check_username(username) and self.check_password(password):
self.data[username] = password
print('注册成功')
return True
return False
def exit(self):
"""退出"""
print('欢迎下次光临')
def check_username(self, username):
"""检测用户名
1. 长度检测
2. 手机号必须 1 开头
3. 组成检测
"""
if len(username) != 11:
print('长度不对,请输入正确的11位手机号')
return False
if username[0] != '1':
print('只能1开头,请输入正确的11位手机号')
return False
# for c in username[1:]:
# if c not in range(10):
# print('非数字,请输入正确的11位手机号')
# break
if not username.isdigit():
print('非数字,请输入正确的11位手机号')
return False
return True
def check_password(self, password):
"""检测密码
1. 长度检测
2. 组成检测
"""
if not (6 <= len(password) <= 12):
print('密码长度必须在 6~12 之间')
return False
if not password.isalnum():
print('密码只能是数字或字母')
return False
return True
def run(self):
help_text = [
'1. 我要注册',
'2. 我要登录',
'3. 我要退出',
]
while True:
action = input('{}\n请输入序号选择你需要的操作:'.format('\n'.join(help_text)))
action = int(action)
if action == 1:
while True:
username = input('请输入手机号:')
password = input('请输入密码:')
res = self.register(username, password)
if res is True:
break
elif action == 2:
while True:
username = input('请输入手机号:')
password = input('请输入密码:')
res = self.login(username, password)
if res is True:
break
elif action == 3:
self.exit()
break
self.save_db()
if __name__ == '__main__':
xt = XiTong()
xt.run()
|