# 优化
# 1.更改密码成功请重新登录,这个需要优化,让别人更改了密码之再重新输入账号密码
import random
flag = True
log = True
d = {}
count = 0
with open('b.txt', mode='rt', encoding='utf-8') as f:
res = f.readlines()
for line in res:
i = line.strip('\n').split(':')
d[i[0]] = i[1]
while flag:
if count == 3:
print('你已经输入错误三次了')
print('继续y/退出n')
commend = input('y/n>>>:')
if commend == 'y':
count = 0
continue
elif commend == 'n':
flag = False
break
inp_user = input('请输入您的账号>>>:').strip()
if inp_user not in d:
print('对不起用户名不存在,请重新输入')
count += 1
continue
else:
inp_pwd = input('请输入您的密码>>>:').strip()
if d[inp_user] == inp_pwd:
count = 0
while flag:
code = ''
if count == 3:
print('验证码错误多次,请重新登录')
count = 0
Flag = False
break
else:
for line in range(4):
item = str(random.randint(0, 9))
i = chr(random.randint(65, 90))
j = chr(random.randint(97, 122))
code += random.choice([i, j, item])
print(code)
commend = input('请输入图中的验证码>>>:')
if commend.upper() == code.upper():
print('登录正确')
while flag:
log = True
print('查询余额请按1!')
print('转账请按2!')
print('存款请按3!')
print('取款请按4!')
print('更改密码请按5!')
print('退出请按0!')
commend = input('请选择您的操作>>>:')
if commend == '1':
d = {}
with open('a.txt', mode='rt', encoding='utf-8') as f1:
res = f1.readlines()
if len(res) == 0:
print('对不起您的余额为0')
print('返回主界面请按1,退出请按2')
commend = input('>>>:')
if commend == '1':
continue
elif commend == '2':
flag = False
break
for line in res:
i = (line.strip('\n')).split(':')
d[i[0]] = i[1]
print('您的余额还有', d[inp_user])
print('返回主菜单请按1,退出请按2')
commend = input('请选择您的操作>>>:')
if commend == '1':
continue
elif commend == '2':
print('再见')
flag = False
elif commend == '2':
print(f.closed)
count = 0
while log:
if count == 3:
print('对不起您已经输入错误三次了')
print('继续y/退出n/返回主菜单F')
commend = input('y/n/F>>>:')
if commend == 'y':
count = 0
continue
elif commend == 'n':
flag = False
log = False
break
elif commend == 'F':
log = False
break
username = input('请输入转账用户名>>>:')
if username in d:
while log:
d = {}
with open('a.txt', mode='rt', encoding='utf-8') as f2:
res = f2.readlines()
for line in res:
i = line.strip('\n').split(':')
d[i[0]] = i[1]
money = input('请输入转账金额>>>:')
if int(d[inp_user]) > int(money):
res1 = int(d[inp_user]) - int(money)
res2 = int(d[username]) + int(money)
with open('a.txt', mode='at', encoding='utf-8') as f2:
line1 = '%s:%s\n' % (inp_user, res1)
line2 = '%s:%s\n' % (username, res2)
f2.write(line1)
f2.write(line2)
import time
with open('access.log', mode='at', encoding='utf-8') as f:
f.write('%s %s 转账给 %s %s元\n' % \
(time.strftime('%Y-%m-%d %H:%M:%S'), inp_user, username, money))
print('转账成功,您当前余额为', res1)
print('继续转账请按1,返回主菜单请按2,退出请按3')
commend = input('请选择您的操作>>>:')
if commend == '1':
continue
elif commend == '2':
log = False
elif commend == '3':
print('再见')
flag = False
log = False
else:
print('转账失败,余额不足,请重新输入')
continue
else:
print('用户名不存在,请重新输入')
count += 1
continue
elif commend == '3':
d = {}
while log:
with open('a.txt', mode='rt', encoding='utf-8') as f3:
res = f3.readlines()
for line in res:
i = line.strip('\n').split(':')
d[i[0]] = i[1]
money = input('请输入存款金额>>>:')
if money.isdigit():
res1 = int(money) + int(d[inp_user])
with open('a.txt', mode='at', encoding='utf-8') as f3:
res2 = '%s:%s\n' % (inp_user, res1)
f3.write(res2)
print('存款成功,当前余额为', res1)
print('继续存款请按1,返回主界面请按2,退出请按3')
commend = input('请输入您的选择>>>:')
if commend == '1':
continue
elif commend == '2':
log = False
elif commend == '3':
print('再见')
flag = False
log = False
else:
print('请输入纯数字')
continue
elif commend == '4':
d = {}
while log:
with open('a.txt', mode='rt', encoding='utf-8') as f4:
res = f4.readlines()
for line in res:
i = line.strip('\n').split(':')
d[i[0]] = i[1]
money = input('请输入取款金额>>>:')
if int(d[inp_user]) > int(money):
res = int(d[inp_user]) - int(money)
with open('a.txt', mode='at', encoding='utf-8') as f4:
res1 = '%s:%s\n' % (inp_user, res)
f4.write(res1)
print('取款成功,请等待查收')
print('继续取款请按1,返回主界面请按2,退出请按3')
commend = input('请输入123>>>:')
if commend == '1':
continue
elif commend == '2':
log = False
elif commend == '3':
print('再见')
flag = False
log = False
else:
print('取款失败,余额不足')
continue
elif commend == '5':
d = {}
with open('b.txt', mode='rt', encoding='utf-8') as f:
res = f.readlines()
for line in res:
i = line.strip('\n').split(':')
d[i[0]] = i[1]
while log:
count = 0
while log:
count += 1
password = input('请输入您的旧密码>>>:').strip()
if d[inp_user] == password:
while log:
password1 = input('请输入您的新密码>>>:').strip()
password2 = input('请再次输入您的新密码>>>:').strip()
if password1 == password2:
with open('b.txt', mode='at', encoding='utf-8') as f:
res = '%s:%s\n' % (inp_user, password2)
f.write(res)
print('密码更改成功,请重新登录')
flag = False
log = False
else:
print('俩次密码输入不相同,请重新输入')
continue
else:
if count == 3:
print('您已经三次输入错误了,是/否退出账号')
while log:
commend = input('yes/no>>>:')
if commend == 'yes':
print('再见')
log = False
flag = False
elif commend == 'no':
count = 0
break
else:
print('输入无效,请输入yes或者no')
else:
print('原密码输入错误,请重新输入')
elif commend == '0':
print('再见')
flag = False
log = False
else:
print('验证码错误,请重新输入')
count += 1
else:
print('密码错误,请重新输入')
continue