1. 用户输入帐号密码进行登陆
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户

主要采用循环语句和条件语句进行程序流程的控制,加入文件的读写操作

 while True:
choice = input("登陆L 注册R 退出Q:").strip()
#用户登录流程
if choice.lower() == 'l':
l_flag = False
count = 1
tmp = ''
while True:
user_name =input("请输入用户名(或者'q'退出):").strip()
if not user_name:continue
if user_name == 'q':
print("退出成功!")
exit()
user_pwd = input("请输入用户密码(或者'q'退出):").strip()
if not user_pwd:
print("密码不能为空,请重新输入!")
continue
if user_pwd == 'q':
print("退出成功!")
exit()
with open("locked_id",mode="r",encoding="utf8") as f_locked:
for line in f_locked:
if line.startswith("username:") and user_name in line and len(user_name)!=0:
print("该用户已经被锁定,请联系管理员!")
exit()
with open("user_id",mode="r",encoding="utf8") as f_reed:
for line in f_reed:
if line.startswith("username:") and user_name in line and len(user_name) != 0:
l_flag = True
tmp = line
if l_flag:
if tmp.split(":")[2].strip() == user_pwd:
print("用户登录成功!")
l_flag = False
exit()
elif count >= 3:
with open("locked_id",mode="a",encoding="utf8") as f_locked:
f_locked.write("\nusername:"+user_name)
print("您的密码错误三次,用户被锁定!")
l_flag =False
exit()
else:
count += 1
l_flag =False
print("密码错误,请重新输入!")
continue
else:
print('用户名不存在,请重新登录!') #用户注册流程
if choice.lower() == 'r':
r_flag = False #注册过程标志位
while True:
new_user_name =input("请输入注册用户名(或者'q'退出):").strip()
if not new_user_name:continue #用户名为空开始下一个循环
if new_user_name == 'q':
print("退出成功!")
exit()
new_pwd = input("请输入用户密码且不少于6位(或者'q'退出):").strip()
if new_pwd == 'q':
print("退出成功!")
exit()
if len(new_pwd) < 6:
print('密码不能为空且不少于6位!')
continue
with open("user_id",mode="r+",encoding="utf8") as f:
f.seek(0)
for line in f:
if line.startswith("username:") and new_user_name in line: #判断是否已经有该用户
print("该用户已经被注册!")
r_flag = True
break
if not r_flag:
f.write("\nusername:" + new_user_name)
f.write("\t|password:" + new_pwd)
print("新用户注册成功!")
r_flag = False
break #退出流程
if choice.lower() == 'q':
print("退出成功!")
exit()

模拟登陆代码

Python做的第一个小项目-模拟登陆的更多相关文章

  1. 跟我一起做一个vue的小项目(二)

    这个vue项目是紧跟着之前的项目跟我一起做一个vue的小项目(一)来的. 我继续后面的开发(写的比较粗糙,边学边记录) 下图是header头部的样式 header组件内容如下 //header.vue ...

  2. 用jinja做了个E-Letter小项目

    做了一个html E-Letter项目. 邮件模板采用jinja2, html 邮件内容生成简直太爽了. 整个项目开发只用了2个小时, 调试却花了大半天时间, 生成的邮件总是发不出去. 于是, 打开 ...

  3. Python爬虫实例(四)网站模拟登陆

    一.获取一个有登录信息的Cookie模拟登陆 下面以人人网为例,首先使用自己的账号和密码在浏览器登录,然后通过抓包拿到cookie,再将cookie放到请求之中发送请求即可,具体代码如下: # -*- ...

  4. Python 做过哪些有趣的项目

          1 icedx   241 天前 via Android   ♥ 1 考虑到Windows 下的类Alfred 软件都太傻逼 自己用PyQT 写了一个       2 crazyxin19 ...

  5. Python爬虫01——第一个小爬虫

    Python小爬虫——贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写. 目标: 首先肯定要实现图片抓取这个基本功能 然后实现对用户所给的链接进行抓取 最后要有一定的 ...

  6. 从Python小白到第一个小游戏发布

    1.安装必要的环境(附图两张) 直接下载安装程序,本人win10系统,根据电脑系统下载并安装对应的python.exe,安装路径可以选择D盘的,具体安装细节这里就不说了,不知道的可以留言或者找度娘 2 ...

  7. geek网工作室主页------我的第一个小项目

    传送门:袁咩咩的小小博客 很快,就到了大二的寒假,大学的生活就这样过去了接近一半,之前听说大二寒假会有项目什么的,已经准好了心理准备. 但第一次着手项目,还是有点小紧张 在这之前我已经看了一些框架,也 ...

  8. 用Python做一个简单的小游戏

    学习总是枯燥的,对于Python小白的我来讲,更是乏味的.为了提高学习的兴趣,今天我就来写一个小程序练练手. 数字猜谜游戏相信大家都不陌生,A给出最小值最大值,B写一个该范围内的数,A猜测写下的是多少 ...

  9. 跟我一起做一个vue的小项目(七)

    先看下我们所做项目的效果 这些数据都是我们在data中定义的,不是从后端数据中请求的.那么 接下来我们使用axios渲染数据 npm install axios --save 每个组件里面的数据都不相 ...

随机推荐

  1. 详细分析apache httpd反向代理的用法

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  2. 常用硬件设备GUID

    Class GUID Device Description CDROM 4D36E965-E325-11CE-BFC1-08002BE10318 CD/DVD/Blu-ray drives DiskD ...

  3. C#获取本周第一天和最后一天

    DateTime nowTime = DateTime.Now; #region 获取本周第一天 //星期一为第一天 int weeknow = Convert.ToInt32(nowTime.Day ...

  4. C#一款比较美观的验证码

    using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...

  5. Linux内存(手动释放cache)

    项目的扩容申请了一台机器,到手之后看一下机器的指标,看到内存使用情况是这样的. 1.查看内存 free $ free -h total used free shared buffers cached ...

  6. Android的快速开发框架 afinal

    afinal 框架学习: http://www.oschina.net/p/afinal

  7. Ubuntu16.04下Office替代品Office Online

    Ubuntu16.04下Office替代品 Ubuntu16.04下的office Libreoffice 这个是Ubuntu自带的Office,总是存在各种问题,如果用来阅读还是不错的,但是编辑就不 ...

  8. win10 uwp 装机必备应用 含源代码

    zhxilin大神说http://www.cnblogs.com/zhxilin/p/4819372.html这文章说到了使用await Windows.System.Launcher.LaunchU ...

  9. 简说chart2.4的应用,以及Uncaught ReferenceError : require is not defined的解决

    51呢最近在学习chart.js,然后呢就照着中文的帮助文档来然后就一直出Uncaught ReferenceError : require is not defined的问题查了挺多才知道是帮助文档 ...

  10. js的解析顺序 作用域 严格模式

    一.javascript的解析顺序 我们大家所理解的代码的执行顺序都是从上到下的,但是实际上确不是这样的.我们看一下下面的代码. 1 alert(a); 2 var a = 1; 如果执行顺序是从上到 ...