1.需求分析
登入界面需要达到以下要求:
- 系统要有登入和注册两个选项可供选择
- 系统要能够实现登入出错提示,比如账户密码错误等,用户信息保存在user_info.txt文件夹中
- 系统要能够进行登入错误次数统计并锁定,当用户输入3次错误时账户密码时,改账户被锁定,并将锁定账户保存于login_lock.txt文件夹中
- 注册界面要能够进行用户名重复提示,当用户注册账户已存在时,进行相应信息的提示。
1.代码实现
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
|
getNum = int ( input ( "1.登入\n2.注册\nPlease Input the Choose :" ))
while getNum< 1 or getNum> 2 :
getNum = int ( input ( "无效值 :" ))
username = input ( "用户名: " )
password = input ( "密码: " )
if getNum = = 1 : #登入
ErrNums = 0
while ErrNums< 3 :
T = False
fp = open ( 'login_lock.txt' , 'r' ) #打开锁定文件查看输入的账户是否被锁定
lines = fp.readlines() #读取所有行
while T = = False :
for line in lines:
if line.split( ',' )[ 0 ] = = username:
print ( "帐号已被锁定 !" )
username = input ( "用户名: " )
password = input ( "密码: " )
break
T = True
fp.close()
T = False
fp_user = open ( 'user_info.txt' , 'r' ) #打开用户信息文件:
lines = fp_user.readlines()
for line in lines:
if line.split( ',' )[ 0 ] = = username:
if line.split( ',' )[ 1 ] = = password + '\n' or line.split( ',' )[ 1 ] = = password:
print ( "登入成功 !" )
T = True
break
fp_user.close()
if T = = False : #登入失败了
ErrNums + = 1
if ErrNums > = 3 :
fp_user = open ( 'login_lock.txt' , 'a' )
print ( "账户已被锁定 !" )
fp_user.write( '\n' + username)
fp_user.close()
break
print ( "账户名或密码错误 !" )
username = input ( "用户名: " )
password = input ( "密码: " )
else :
break
elif getNum = = 2 : #注册
fp = open ( 'user_info.txt' , 'r' ) #打开用户信息文件:
T = False
lines = fp.readlines() # 读取所有行
while T = = False :
for line in lines:
if line.split( ',' )[ 0 ] = = username:
print ( "帐号已存在,请重新输入 !" )
username = input ( "用户名: " )
password = input ( "密码: " )
break
T = True
fp.close()
fp = open ( 'user_info.txt' , 'a' ) # 打开用户信息文件:
fp.write(username + ',' + password + '\n' )
print ( "注册成功 !" )
|
user_info.txt文件的内容如下图:
代码的重要部分都有注解,txt文件的创建目前存放与工程目录中,使用相对路径方便调用,如不在该文件夹中则代码中的路径需要改成绝对路径,否则程序运行后会有问题。代码中仍有不完善的地方,忘有经验的朋友给句指出与探讨。
总结
以上所述是小编给大家介绍的python编辑用户登入界面的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/wangxingwei/archive/2018/07/16/9318010.html