Python做的第一个小项目-模拟登陆
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做的第一个小项目-模拟登陆的更多相关文章
- 跟我一起做一个vue的小项目(二)
这个vue项目是紧跟着之前的项目跟我一起做一个vue的小项目(一)来的. 我继续后面的开发(写的比较粗糙,边学边记录) 下图是header头部的样式 header组件内容如下 //header.vue ...
- 用jinja做了个E-Letter小项目
做了一个html E-Letter项目. 邮件模板采用jinja2, html 邮件内容生成简直太爽了. 整个项目开发只用了2个小时, 调试却花了大半天时间, 生成的邮件总是发不出去. 于是, 打开 ...
- Python爬虫实例(四)网站模拟登陆
一.获取一个有登录信息的Cookie模拟登陆 下面以人人网为例,首先使用自己的账号和密码在浏览器登录,然后通过抓包拿到cookie,再将cookie放到请求之中发送请求即可,具体代码如下: # -*- ...
- Python 做过哪些有趣的项目
1 icedx 241 天前 via Android ♥ 1 考虑到Windows 下的类Alfred 软件都太傻逼 自己用PyQT 写了一个 2 crazyxin19 ...
- Python爬虫01——第一个小爬虫
Python小爬虫——贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写. 目标: 首先肯定要实现图片抓取这个基本功能 然后实现对用户所给的链接进行抓取 最后要有一定的 ...
- 从Python小白到第一个小游戏发布
1.安装必要的环境(附图两张) 直接下载安装程序,本人win10系统,根据电脑系统下载并安装对应的python.exe,安装路径可以选择D盘的,具体安装细节这里就不说了,不知道的可以留言或者找度娘 2 ...
- geek网工作室主页------我的第一个小项目
传送门:袁咩咩的小小博客 很快,就到了大二的寒假,大学的生活就这样过去了接近一半,之前听说大二寒假会有项目什么的,已经准好了心理准备. 但第一次着手项目,还是有点小紧张 在这之前我已经看了一些框架,也 ...
- 用Python做一个简单的小游戏
学习总是枯燥的,对于Python小白的我来讲,更是乏味的.为了提高学习的兴趣,今天我就来写一个小程序练练手. 数字猜谜游戏相信大家都不陌生,A给出最小值最大值,B写一个该范围内的数,A猜测写下的是多少 ...
- 跟我一起做一个vue的小项目(七)
先看下我们所做项目的效果 这些数据都是我们在data中定义的,不是从后端数据中请求的.那么 接下来我们使用axios渲染数据 npm install axios --save 每个组件里面的数据都不相 ...
随机推荐
- bzoj3224 普通平衡树(c++vector)
Tyvj 1728 普通平衡树 2014年8月23日6,4365 Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有 ...
- util包里的一些类的使用
好几天没有更新我的博客了 .国庆放假出去玩了一趟,这回来应该收心回到我的事业上了,哈哈哈!废话不多说,开始学习吧!首先今天来学习一些例子,这些例子可以回顾假期遗忘的知识,还能提高自己的能力.程序也会相 ...
- ch1-vuejs基础入门(hw v-bind v-if v-for v-on v-model 应用组件简介 小案例)
1 hello world 引入vue.min.js 代码: ----2.0+版本 <div id="test"> {{str}} </div> <s ...
- vim环境设置(应用于python编程)
1. 安装完整的vim # apt-get install vim-gnome 2. 安装ctags,ctags用于支持taglist,必需! # apt-get install ctags 3. 安 ...
- Are We There Yet? (zoj1745)
Are We There Yet? (ZOJ Problem Set - 1745) Are We There Yet? Time Limit: 2 Seconds Memory L ...
- SqlServer批量备份多个数据库且删除3天前的备份
/******************************************* * 批量备份数据库且删除3天前的备份 ************************************ ...
- Echarts数据可视化dataZoom,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
- scala配置intellij IDEA15.0.3环境及hello world!
1. Intellij IDEA Scala开发环境搭建 Intellij IDEA 15.0.3 默认配置里面没有Scala插件,需要手动安装,在Intellij IDEA 15.0.3 第一次运行 ...
- Vue中之nextTick函数源码分析
Vue中之nextTick函数源码分析 1. 什么是Vue.nextTick()?官方文档解释如下:在下次DOM更新循环结束之后执行的延迟回调.在修改数据之后立即使用这个方法,获取更新后的DOM. 2 ...
- SAP文件的上传下载 SMW0,二进制文件
TCODE: SMW0 选择:二进制数据 输入包名和对象名 新建 维护文件类型 文件参数信息 下载: DATA: LS_WWWDATA_ITEM LIKE WWWDATATAB, " LV_ ...