用户登录模拟系统

此次登录是在学习了函数后重新写了一下

取消之前使用os模块,使用函数对用户名文件进行操作

将用户名以列表形式反映出来,判断用户名是否输入正确

将用户名和密码以字典的形式对应出来,进行用户名密码相对应判断

用户登录:输入用户名-----检测用户名是否在锁定文件user_lock.txt
锁定文件有-----提示用户被锁,请联系IT!!!,并退出程序
锁定文件无-----检测user文件中是否有,提示输入是否正确,正确进入,不正确重新输入
用户名输入正确后,提示输入密码:
密码对应正确,进入系统,密码错误提示重新输入,输入三次,三次错误将用户名写入锁定文件user_login.txt

以下是代码:

 1 #!/usr/local/python/bin/python
 2 #-*- coding:utf-8 -*-
 3 #Author:辰星心语
 4 #DATE:2018/2/24
 5 
 6 
 7 #用户名锁定文件:user_lock.txt
 8 #用户密码存储文件:user_lock.txt
 9 #使用函数,将三次密码错误的用户名username追加写入到锁定文件中
10 def user_lockfile(username):
11     lock_file = open("user_lock.txt","a")
12     lock_file.write(username+'\n')
13     lock_file.close()
14 
15 #将用户密码文件或锁定用户文件中的用户名或密码以列表形式返回
16 #b为用户密码文件user_login.txt的时候,a的值为0或者1,为0取用户名列表,为1时候取密码列表
17 #b为锁定用户文件user_lock.txt的时候,a的值仅为0,取锁定文件中的用户名列表
18 def name_pass(a,b):
19     user_file = open(b,"r")
20     m = user_file.readlines()
21     x = []
22     for i in m:
23         y = i.strip("\n").split()
24         x.append(y[a])
25     user_file.close()
26     return x
27 
28 #将用户名密码对应返回为字典形式,z为返回的字典信息
29 def name_passwd():
30     z = dict(zip(name_list,passwd_list))
31     return z
32 
33 name_list = name_pass(0,'user_login.txt')  #用户名列表
34 passwd_list = name_pass(1,'user_login.txt') #密码列表
35 z = name_passwd()                             #用户名密码对应的字典
36 lockname=name_pass(0,'user_lock.txt')       #锁定用户名列表
37 
38 c = 'mm'
39 count = 0
40 while c =='mm':        #while循环加c标签,判断循环结束或运行
41     count +=1
42     username = input("请输入您的用户名:")
43     if username in name_list:                       #判断用户名是否在用户文件中存在
44         if username in lockname:                    #判断用户名是否在锁定文件中存在
45             print("您的账户已经被锁定!!!")
46             c = 'ff'
47             break                                    #输入用户名存在于锁定文件中,则退出系统
48         for i in range(3):                            #使用for循环进行计数,三次密码输入机会
49             password = input("请输入您的密码:")
50             if password == z[username]:                #判断输入密码是否和用户密码文件中的秘密相同
51                 print("您输入的密码正确!!!\n欢迎进入系统!!!")
52                 c = 'ff'
53                 break                                  #相同则进入系统,退出循环计数
54             else:
55                 print("您输入的密码不正确,请重新输入!!!")
56                 if i ==2:                                     #输入密码次数超过三次
57                     print("您输入错误的密码次数过多!\n您的账户已经被锁定,请联系IT!!!")
58                     user_lockfile(username)
59                     c = 'ff'
60                     break
61     else:                                               #判断输入用户名不存在于用户密码文件,重新输入
62         print("您输入的用户名不存在,请重新输入!!!")
63     if  count == 3:
64         print("您输入的次数过多,现在退出系统!!!")  #用户名输入三次机会,都不正确,退出系统
65         c = 'ff'
66         break
View Code

 



转载于:https://www.cnblogs.com/liuxingpoqiong/p/8465735.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值