编写一个用户登录程序:

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. mysql(七)

    多表查询: 显示内连接: select 字段列表 from 表名1  inner  join 表名1 on  条件 * inner 可忽略 select * from student inner  j ...

  2. 9、Flutter 实现 生成二维码

    1.加入依赖 在 pubspec.yaml 中 dependencies 节点下添加: dependencies: qr_flutter: ^ 2.引入代码 在需要细线二维码的 dart 类中引入依赖 ...

  3. WIN7远程桌面连接--“发生身份验证错误。要求的函数不受支持”

    故障现象:WIN7发现远程桌面无法连接了,报“发生身份验证错误.要求的函数不受支持”的错误: 解决办法:开始菜单->运行gpedit.msc 打开配置项:计算机配置>管理模板>系统& ...

  4. nginx隐藏tp路由index.php

    ---------------------------------------------- 也可以找到vhosts.conf文件修改, 重启nginx,service nginx restart

  5. kali在vbox上运行设置共享文件夹

    mount -t vboxsf VBoxShared /root/Desktop/vbox 0x00 使用共享文件夹的前提 需要自行安装增强功能:https://jingyan.baidu.com/a ...

  6. django js引入失效问题

    今天将项目中html文件下的自定义scrept代码单独独立,结果js引入无效,没有任何时间效果,在浏览器查看引入文件也正常. 后来发现自己引入的位置不对,js的引入文件应该放在body体内,而我把他们 ...

  7. linux ip命令和ifconfig命令

    From https://blog.csdn.net/freeking101/article/details/68939059

  8. sitecore8.2 基于相对路径查询item

    当前项目: bar (path: /sitecore/content/home/foo/bar) 查询: query:./child/grandchild 结果: grandchild (path: ...

  9. 20175205 2018-2019-2 《Java程序设计》第五周学习总结

    20175205 2018-2019-2 <Java程序设计>第五周学习总结 教材学习内容总结 接口:使用关键字interface定义接口 接口声明:interface 接口名 接口体:接 ...

  10. CCF CSP 201812-1 小明上学

    题目链接:http://118.190.20.162/view.page?gpid=T80 问题描述 试题编号: 201812-1 试题名称: 小明上学 时间限制: 1.0s 内存限制: 512.0M ...