python程序—用户登录
编写一个用户登录程序:
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程序—用户登录的更多相关文章
- Python入门-用户登录程序升级版
编写登陆接口 基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程 ...
- 小程序版好友对战实战-wss部署与小程序用户登录时序
上一篇文章是对需求的分析,本次将逐渐进入代码阶段.本次主要的内容包括服务端wss的部署以及小程序端用户授权的时序及逻辑. wss的配置与部署 微信小程序出于安全考虑,要求所有涉及到网络的操作,必须使用 ...
- python实现用户登录问候
创建一个至少包含 5个用户名的列表,且其中一个用户名为 'admin' .想象你要编写代码,在每位用户登录网站后都打印一条问候消息.遍历用户名列表,并向每位用户打印一条问候消息.添加一条 if 语句, ...
- python实现用户登录、注册实例
python面向函数式编程,模拟用户登录验证.注册的代码实现. 主要有以下两个文件: 1.user.txt文档文件,相当于数据库的用户信息表,主要是记录用户名和密码. 注意:1)此文档需要与.py文件 ...
- Python入门-用户登录程序
_flag = Falsecount = 0users = [['ziv', '123'], ['alex', '12345']]while count < 3: username = inpu ...
- python案例-用户登录
要求: •输入用户名密码 •认证成功后显示欢迎信息 •输错三次后锁定 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 "" ...
- 微信小程序 用户登录 服务器端(TP5.1)实现
先来看官方提供的流程图: 客户端: 小程序客户端通过 wx.login() 获取登录code , 然后将code当做参数传递到服务器. getToken(){ var that = this; wx. ...
- python实现用户登录界面
要求 输入用户名密码正确,提示登录成功, 输入三次密码错误,锁定账户. 实现原理: 创建两个文件accout,accout_lock accout记录用户名,密码 accout root 1qazxs ...
- 初学 python 之 用户登录实现过程
要求编写登录接口 : 1. 输入用户名和密码 2.认证成功后显示欢迎信息 3.用户名输错,提示用户不存在,重新输入(5次错误,提示尝试次数过多,退出程序) 4.用户名正确,密码错误,提示密码错误,重新 ...
随机推荐
- PyQt5之使用Qt下的designer工具将.ui文件转换成.py文件后添加什么东西后方可运行
首先证明我是加了那些鬼东西以后可以成功运行的. 然后来叙述一下我的过程. 这是一个.ui文件生成的.py文件.(把主要的内容省去了,但是没有影响结构) # -*- coding: utf-8 -*- ...
- thinkphp ckeditor与ckfinder
thinkphp ckeditor与ckfinder 下载 ckeditor下载地址 ckfinder下载地址 整合 将ckeditor与findeditor下载完成后,放到public目录下,配置c ...
- 8、jeecg 笔记之 自定义word 模板导出(一)
1.前言 jeecg 中已经自带 word 的导出导出功能,其所使用的也是 easypoi,尽管所导出的 word 能满足大部分需求, 但总是有需要用到自定义 word导出模板,下文所用到的皆是 ea ...
- npm run dev/build/serve
1.ERR引发的思考 npm run dev npm ERR! missing script: dev npm ERR! A complete log of this run can be found ...
- ESP8266开发笔记
自1999年MIT的Kevin Ash-ton教授首次提出物联网(IoT)的概念至今已经有20年了.放眼现在国内外的物联网市场,真可谓是百家争鸣,方兴未艾,无数家软硬件公司在这里舞浪弄潮,逐鹿其中,上 ...
- 多个if、elif和else的搭配使用
if-if-if-搭配成的语句块,会一个个去匹配是否满足if里面的语句; if与elif的搭配成的语句块,当匹配到if或者elif语句判断为True的时候,那么不会执行下面elif以及else里面的语 ...
- 安装mongodb服务
摘要:https://www.cnblogs.com/z-x-y/p/9305635.html 欢迎转载,转载请标明出处:https://www.cnblogs.com/z-x-y/p/9305635 ...
- django中static的坑
在django搭建网络平台的时候免不了要使用到static来保存静态文件, 在static文件夹里包含两个文件:css和js文件,如果使用不当就会出现很多问题 第一个坑:配置文件settings.py ...
- (转)Oracle EBS 有效银行账户取值 银行科目
SELECT ba.bank_account_id, --银行账户key ftv.territory_short_name, --国家 ftv.territory_code, --国家简称 cb.ba ...
- sitecore8.2 如何关闭性能计数器
在Sitecore.config文件或补丁文件修改Counters.Enabled为false值,此key默认为true;然后再修改Sitecore.Tasks.CounterDumpAgent 时间 ...