Python基础练习之用户登录实现代码分享

yipeiwu_com5年前Python基础

python版本为python3.5

1.要求

1)输入用户名密码
2)认证成功后显示欢迎信息
3)输错三次后锁定

2.需求分析

1)用户信息存储在文件中(login/config/user_login.txt)
2)用户输入用户名和密码
3)判断用户名是否存在,存在则继续,不存在则提示继续输入
4)判断输入的用户名是否已经被锁定,如果已锁定则退出程序,否则继续
5)匹配文件中的用户信息
6)如果匹配则打印出欢迎信息
7)如果输入3次密码错误,则锁定该用户名(login/config/name_lock.txt)

3.测试用户

bigberg:123abc
lc:123456
smallberg:111111
root:12345
dinasor:12321

# -*- coding: UTF-8 -*-
#Author:Bigberg
#定义一个循环计数
count = 0
#定义一个字典存储用户名和密码
names={}
#定义一个列表存储用户名
name_exit = []
#输入用户名
username = input("username:")
#判断输入的用户的用户是否在用户名单中
with open("../config/name_login.txt",'r') as f:
  while True:
    line = f.readline().strip()
    if not line:
      break
    else:
      name = line.split(':')[0]
      passwd = line.split(':')[1]
      names[name] = passwd
for key in names:
  name_exit.append(key)
#判断用户名是否正确,不正确则继续输入
while username not in name_exit:
  print("The account is not exit.Check it again.")
  username = input("username:")
else:
  # 读取锁定文件中的内容
  with open("../config/name_lock.txt", "r") as f:
    lock_name = f.read()
  # 判断用户名是否在锁定文件中,如果在就退出程序
  if username == lock_name:
    print("Sorry.Your account has been locked.")
    exit()
  else:
    # 3次输入密码的机会
    while count < 3:
      passwd_input = input("password:")
      # 判断用户名和密码是否有效
      if passwd_input == names[username]:
        print("Welcome!", username)
        break
      else:
        print("Error,please try again.")
      count += 1
      # 如果3次输入密码错误,则将用户名添加到锁定文件
      if count == 3:
        with open("../config/name_lock.txt", "w") as f:
          f.write("%s" % username)
        print("You have tried 3 times,and your account will be locked")

总结

以上就是本文关于Python基础练习之用户登录实现代码分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python入门之三角函数全解【收藏】python好玩的项目—色情图片识别代码分享Python实现一个简单的验证码程序等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

相关文章

纯python实现机器学习之kNN算法示例

纯python实现机器学习之kNN算法示例

前面文章分别简单介绍了线性回归,逻辑回归,贝叶斯分类,并且用python简单实现。这篇文章介绍更简单的 knn, k-近邻算法(kNN,k-NearestNeighbor)。 k-近邻...

mysql 之通过配置文件链接数据库

mysql 之通过配置文件链接数据库 配置文件jdbc.properties ##MySQL driver=com.mysql.jdbc.Driver url=jdbc\:mysql...

Python实现比较两个列表(list)范围

有一道题: 比较两个列表范围,如果包含的话,返回TRUE,否则FALSE。 详细题目如下: Create a function, this function receives two l...

python解决Fedora解压zip时中文乱码的方法

前言 很多时候在windows下压缩文件没问题,但是到了Linux下,出现乱码,很常见。以前在Ubuntu下,用`unzip -O GBK filename.zip` 就可以搞定。 换了...

Python面向对象之静态属性、类方法与静态方法分析

本文实例讲述了Python面向对象之静态属性、类方法与静态方法。分享给大家供大家参考,具体如下: 1. 静态属性:在函数前加@property,将函数逻辑”封装“成数据属性,外部直接调用...