需求 编写登陆接口 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 可以支持多个用户登录 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态
测试信息 用户 密码 alex 123 egon 456 锁定用户 密码 lyndon 789
流程图:
脚本实现:
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
|
#!/bin/env python
# -*- coding:utf-8 -*-
# 用字典定义用户名和密码
db
=
{
'egon'
:
'123'
,
'alex'
:
'456'
,
'lyndon'
:
'789'
}
"""
需要先创建文件user_list
a、a+ 能创建文件,但不能按行读取文件内容
w、w+ 能创建文件,但每次执行会清空文件内容
r、r+ 能按行读取文件内容,但不能创建不存在的文件
只能手动创建了,心累。。。
"""
# 按行读取user_list内容,以列表形式赋值给lock_list
f
=
open
(
'user_list'
,
'r'
)
lock_list
=
f.readlines()
lock_list
=
lock_list.__str__()
f.close()
while
True
:
print
(
"""
==========================
【E】 登录
【Q】 退出
==========================
"""
)
choice
=
input
(
'请输入你的选择:'
)
if
choice.lower()
=
=
'q'
:
break
elif
choice.lower() !
=
'q'
and
choice.lower() !
=
'e'
:
print
(
'输入错误,请重新输入'
)
if
choice.lower()
=
=
'e'
:
username
=
input
(
'请输入用户名:'
)
if
username
not
in
db:
print
(
'没有此用户!'
)
continue
elif
username
in
lock_list:
print
(
'该用户已锁定,请联系管理员解锁!'
)
continue
else
:
for
i
in
range
(
3
):
passwd
=
input
(
'请输入密码:'
)
if
passwd !
=
db.get(username):
print
(
'密码错误!'
)
if
i
=
=
2
:
f
=
open
(
'user_list'
,
'a'
)
f.writelines(
'%s\n'
%
username)
f.close()
print
(
'密码错误三次,用户已锁定!'
)
exit()
else
:
print
(
'登陆成功!'
)
break
|
迟到的栋子