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 每个组件里面的数据都不相 ...
随机推荐
- Disharmony Trees 树状数组
Disharmony Trees Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Su ...
- 搭建LAMP环境示例
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Python-MongoDB的驱动安装、升级
安装pip,并通过此来安装pymongo–Python mongodb驱动 1.下载pip安装包,下载地址:http://pypi.python.org/packages/source/p/pip/p ...
- centos7下安装tesseract-ocr进行验证码识别
摘要: centos7安装依赖库 tesseract配置 代码例子 centos7安装依赖库 安装centos系统依赖 yum install -y automake autoconf libtool ...
- 【转】 Python subprocess模块学习总结
从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn*.os.popen*.popen2.*.comman ...
- Uploadify 3.2上传文件,限制类型,大小,传递参数等
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="upload.aspx.cs ...
- ssm搭建报错
在搭建ssm框架时候踩得坑:1.对于拦截器url-parttern的设置:第一次设置的是/** 本以为这个是表示拦截所有,没想到这是错误的写法,正确的写法是/ 启动项目不会报错,但是会出现404 ...
- nodejs+express-实现文件上传下载管理的网站
Nodejs+Express-实现文件上传下载管理的网站 项目Github地址(对你有帮助记得给星哟):https://github.com/qcer/updo 后端:基于nodejs的express ...
- 关于时钟模块DS1302的使用心得
最近在做万年历,用到实时时钟DS1302模块,花了两天时间看资料和写驱动,想记录一下我的学习经过,顺便做一下总结. 首先就是在图书馆查各种资料,于是查到的大多是这些,主要时硬件方面的资料: 其实能查到 ...
- 谷歌Chrome浏览器提示adobe flash player已过期完美解决办法
最近使用谷歌Chrome浏览器提示adobe flash player已过期,浏览网页时一些flash元素的东西都无法正常显示,在网上尝试寻找很多方法,都不能解决,最后,经测试有效方法如下:一:下载最 ...