编写一个用户登录程序:

1.登录成功显示登录页面

2.登录失败,显示密码错误,并且显示错误几次

3.登录失败三次,退出程序

username= 'root'
passwd= ''
count=
print('请登录 >>>>>>>>>')
while True:
user=input('登录名:')
pwd=input('密码:')
if user == username and pwd == passwd:
print('登录成功!欢迎登录!')
break
else:
count +=
print('密码错误!登录失败!',count)
if count ==:
break

升级:

支持多用户登录

userinfo={
'root': {'username': 'root',
'passwd': ''},
'lee' : {'username': 'lee',
'passwd': ''},
'zhang':{'username': 'zhang',
'passwd': ''}
} count=
print('请登录 >>>>>>>>>')
while True:
user=input('登录名:').strip()
pwd=input('密码:').strip()
if user == userinfo[user]['username'] and pwd == userinfo[user]['passwd']:
print('登录成功!欢迎登录!')
break
else:
count +=
print('密码错误!登录失败!')
if count ==:
break

再次升级:

1.支持创建用户,并将用户信息写入文件

2.同一用户因密码错误而登录失败三次后,提示用户锁定

import re  # 导入re模块,进行正则匹配

userinfo1 = {}
g = open('C:\\Users\\lenovo\\Desktop\\b.txt', 'r', encoding='utf-8')
for i in g:
user = re.compile('(.*?) (.*?) ').search(i).group()
pwd = re.compile('(.*?) (.*?) ').search(i).group()
count = re.compile('(.*?) (.*?) (.*)').search(i).group()
userinfo1[user] = {'username': user,
'passwd': pwd,
'count': int(count)}
g.close() while True:
print('=======================================')
print(' 1.创建用户 2.登录用户 3.退出 ')
print('=======================================')
choose=input('请输入选项:') if choose == '':
userinfo = {}
with open('C:\\Users\\lenovo\\Desktop\\b.txt', 'w', encoding='utf-8') as f:
print('请创建 >>>>>>>>>')
userinfo1 = {}
for i in open('C:\\Users\\lenovo\\Desktop\\b.txt', 'r', encoding='utf-8'):
user = re.compile('(.*?) (.*?) ').search(i).group()
pwd = re.compile('(.*?) (.*?) ').search(i).group()
userinfo1[user] = {'username': user,
'passwd': pwd,
'count': }
user = input('请输入用户名:').strip()
if user in userinfo1.keys():
print('用户名已经存在!')
else:
pwd = input('请输入密码:').strip()
userinfo[user] = {'username': user,
'passwd': pwd,
'count': } for i in userinfo.values():
j=
for j in i.values():
f.write('%s ' % str(j))
f.write('\n') elif choose == '':
print('请登录 >>>>>>>>>') with open('C:\\Users\\lenovo\\Desktop\\a.txt','r',encoding='utf-8') as f:
user = input('登录名:').strip()
if user not in userinfo1:
print('用户不存在!')
continue
if user in f.read():
print(f.read())
print('用户已锁定!请联系管理员!')
continue
if user == userinfo1[user]['username']:
pwd = input('密码:').strip()
if pwd == userinfo1[user]['passwd']:
print('登录成功!欢迎登录!')
continue
else:
userinfo1[user]['count']+=
print('密码错误!登录失败!')
if userinfo1[user]['count']==:
with open('C:\\Users\\lenovo\\Desktop\\a.txt','a',encoding='utf-8') as f:
f.write('%s \n' % user) elif choose == '':
break else:
print('请输入正确选项!')

python程序—用户登录的更多相关文章

  1. Python入门-用户登录程序升级版

    编写登陆接口 基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程 ...

  2. 小程序版好友对战实战-wss部署与小程序用户登录时序

    上一篇文章是对需求的分析,本次将逐渐进入代码阶段.本次主要的内容包括服务端wss的部署以及小程序端用户授权的时序及逻辑. wss的配置与部署 微信小程序出于安全考虑,要求所有涉及到网络的操作,必须使用 ...

  3. python实现用户登录问候

    创建一个至少包含 5个用户名的列表,且其中一个用户名为 'admin' .想象你要编写代码,在每位用户登录网站后都打印一条问候消息.遍历用户名列表,并向每位用户打印一条问候消息.添加一条 if 语句, ...

  4. python实现用户登录、注册实例

    python面向函数式编程,模拟用户登录验证.注册的代码实现. 主要有以下两个文件: 1.user.txt文档文件,相当于数据库的用户信息表,主要是记录用户名和密码. 注意:1)此文档需要与.py文件 ...

  5. Python入门-用户登录程序

    _flag = Falsecount = 0users = [['ziv', '123'], ['alex', '12345']]while count < 3: username = inpu ...

  6. python案例-用户登录

    要求: •输入用户名密码 •认证成功后显示欢迎信息 •输错三次后锁定 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 "" ...

  7. 微信小程序 用户登录 服务器端(TP5.1)实现

    先来看官方提供的流程图: 客户端: 小程序客户端通过 wx.login() 获取登录code , 然后将code当做参数传递到服务器. getToken(){ var that = this; wx. ...

  8. python实现用户登录界面

    要求 输入用户名密码正确,提示登录成功, 输入三次密码错误,锁定账户. 实现原理: 创建两个文件accout,accout_lock accout记录用户名,密码 accout root 1qazxs ...

  9. 初学 python 之 用户登录实现过程

    要求编写登录接口 : 1. 输入用户名和密码 2.认证成功后显示欢迎信息 3.用户名输错,提示用户不存在,重新输入(5次错误,提示尝试次数过多,退出程序) 4.用户名正确,密码错误,提示密码错误,重新 ...

随机推荐

  1. numpy(一)

    np.zeros(10,dtype=int) #创建全为0的一位数组 np.ones((3,5),dtype=float) #创建3*5的二维全为1的数组 np.full((3,5),3.14) #创 ...

  2. Get Random number

    , int pMaxVal = int.MaxValue) { int m = pMaxVal - pMinVal; int rnd = int.MinValue; decimal _base = ( ...

  3. 常见查找算法(Java代码实现)

    一,顺序查找 查找算法中顺序查找算是最简单的了,无论是有序的还是无序的都可以,只需要一个个对比即可,但其实效率很低.我们来看下代码 public static int search(int[] a, ...

  4. bios下能看到硬盘,进入系统看不到的解决方法

    新加了个固态硬盘 安装完系统后,打开我的电脑 看不到老硬盘的分区,进入磁盘管理也看不到. 最后,重启 选择老硬盘进入系统后, 再重启,进入新硬盘的系统, 就显示出来了

  5. python基础之 装饰器,内置函数

    1.闭包回顾 在学习装饰器之前,可以先复习一下什么是闭包? 在嵌套函数内部的函数可以使用外部变量(非全局变量)叫做闭包! def wrapper(): money =10 def inner(num) ...

  6. Python基础之 函数名,闭包,和迭代器

    1.函数名作用 函数名本质上就是函数的内存地址或对象. 1.可以被引用 2.可以被当作容器类型的元素 3.可以当作函数的参数和返回值 4.如果记不住的话,那就记住一句话,就当普通变量用 2.闭包 什么 ...

  7. [py]python操作zookeeper

    参考: https://blog.csdn.net/heizistudio/article/details/79568188 1.安装zookeeper zookeeper-3.4.6.tar.gz ...

  8. vue深度监控数据改变,缓存数据到本地

    项目效果图: var vm = new Vue({ el:'#app', data:{ students:[], }, watch:{ students:{ handler(){ localStora ...

  9. 测试12.2.0.1RAC PDB级别的Failover

    关键步骤:手工添加服务名A并启动(已验证默认的服务名测试验证无法实现Failover) [oracle@db90 ~]$ srvctl add service -db orcl -service A ...

  10. MyEclipse破解步骤

    1.下载安装(注:安装后不要打开myeclipse,以下步骤完成方可打开) 2.解压破解文件 3.打开文件夹patch 3.全部复制 4.找到myeclipse的安装目录,打开plugins文件夹 5 ...