1 # #一:今日作业:
2 # #1、编写文件copy工具
3 #
4 # inp_file = input('请输入您想要拷贝的源文件路径:')
5 # copy_file = input('请输入你想要存放拷贝数据的源文件路径:')
6 # with open(inp_file, mode='rt',encoding='utf-8') as f1,\
7 # open(copy_file,mode='wt',encoding='utf-8') as f2:
8 # copy_data = f1.read()
9 # f2.write(copy_data)
10 # print(f2)
11
12 # # #2、编写登录程序,账号密码来自于文件
13 #
14 # inp_user = input('请输入您的账号名:')
15 # inp_pass = input('请输入您的密码:')
16 # with open('user.txt',mode='rt',encoding='utf-8') as f1:
17 # for line in f1:
18 # username,password = line.strip().split(':')
19 # if inp_user==username and inp_pass==password:
20 # print('登陆成功!')
21 # break
22 # else:
23 # print('您的帐号或者密码输入错误,请重新输入!')
24 # #3、编写注册程序,账号密码来存入文件
25 #
26 # reg_user = input('请输入您想要注册的用户名:')
27 # reg_pass = input('请输入您想要注册账号密码:')
28 # with open('user.txt',mode='at',encoding='utf-8') as f2:
29 # f2.write('{}:{}\n'.format(reg_user,reg_pass))
30 # # #二:周末综合作业:
31 # # 2.1:编写用户登录接口
32 # #1、输入账号密码完成验证,验证通过后输出"登录成功"
33 # #2、可以登录不同的用户
34 # #3、同一账号输错三次锁定,(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)
35 #
36 # #
37 # for i in range(3):
38 # inp_user = input('请输入您的账号名:')
39 # inp_pass = input('请输入您的密码:')
40 # with open('user.txt',mode='rt',encoding='utf-8') as f1:
41 # for line in f1:
42 # username,password = line.strip().split(':')
43 # if inp_user==username and inp_pass==password:
44 # print('登陆成功!')
45 # break
46 # else:
47 # if i==2:
48 # print('您的账户密码已经输入错误三次!')
49 # else:
50 # print('您的帐号或者密码输入错误,请重新输入!')
51 # # 2.2:编写程序实现用户注册后(注册到文件中),可以登录(登录信息来自于文件)
52 # 提示:
53 # tag = True
54 # while tag:
55 # msg = """
56 # 0 退出
57 # 1 登录
58 # 2 注册
59 # """
60 # print(msg)
61 # cmd = input('请输入命令编号>>: ').strip()
62 # if not cmd.isdigit():
63 # print('必须输入命令编号的数字,傻叉')
64 # continue
65 #
66 # if cmd == '0':
67 # break
68 # elif cmd == '1':
69 # # 登录功能代码(附加:可以把之前的循环嵌套,三次输错退出引入过来)
70 # i = 0
71 # while i < 3:
72 # inp_user = input('请输入您的账号名:')
73 # inp_pass = input('请输入您的密码:')
74 # with open('user.txt', mode='rt', encoding='utf-8') as f1:
75 # for line in f1:
76 # username, password = line.strip().split(':')
77 # if inp_user == username and inp_pass == password:
78 # print('登陆成功!')
79 # i = 3
80 # break
81 # else:
82 # if i == 2:
83 # print('您的账户密码已经输入错误三次,账户已锁定!')
84 # tag = False
85 # else:
86 # print('您的帐号或者密码输入错误,请重新登录:')
87 # i += 1
88 # pass
89 # elif cmd == '2':
90 # # 注册功能代码
91 # reg_user = input('请输入您想要注册的用户名:')
92 # reg_pass = input('请输入您想要注册账号密码:')
93 # with open('user.txt',mode='at',encoding='utf-8') as f2:
94 # f2.write('{}:{}\n'.format(reg_user,reg_pass))
95 # pass
96 # else:
97 # print('输入的命令不存在')
98 # #
99 # # 思考:上述这个if分支的功能否使用其他更为优美地方式实现
100
101
102 user_info = {}
103 with open('user_info.txt', mode='rt', encoding='utf-8') as f:
104 for line in f:
105 user, pwd = line.strip().split(':')
106 user_info[user] = pwd
107
108 while True:
109 username = input('请输入用户名:')
110 if username not in user_info:
111 print('用户不存在,是否注册?')
112 chase = input('请输入您的选择:Y/y注册,N/n重试:')
113 if chase == 'Y' or chase == 'y':
114 while True:
115 username = input('输入新用户名:').strip()
116 if username in user_info:
117 print('用户名已存在!')
118 continue
119
120 password = input('请输入密码:').strip()
121 re_password = input('请输入密码:').strip()
122
123 if password == re_password:
124 print('注册成功!')
125
126 with open(r'user_info.txt', mode='at', encoding='utf-8') as f:
127 f.write(f'{username}:{password}\n')
128 break
129 else:
130 print('两次输入的密码不一样')
131 else:
132 print('请重新输入账号!')
133 continue
134 password = input('请输入用户密码:')
135 if password == user_info.get(username):
136 print('登录成功!')
137 break
138 else:
139 print('密码错误')