Python3 编写登陆接口
题目选自 Alex Python自动化开发之路的题目,我是从C++转学Python的,编写的水平有限,轻喷。
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定
首先应该有2个txt文件,包含用户名密码的user.txt和包含被锁定文件的lock.txt(用户名自己设定即可)
我的user.txt文件每行有一个用户名和密码 中间用空格隔开
类似:
zhu 123456
zhang 123456
lock.txt每行有一个用户名
代码如下:
# Author:Zhu count = 0
while count < 3:
username = input("请输入用户名: ")
if username == '':
exit("用户名输入错误,程序退出...")
lock_file = open("lock.txt", 'r')
lockf = lock_file.readlines()
# 锁定账号的比对
for line in lockf:
if username in line.split(): # 注意换行符的分割
exit("\033[31;1m你的账户[%s]已经被锁定,请联系管理员\033[0m" %username)
lock_file.close()
password = input("请输入密码:")
login_check = open('user.txt', 'r')
loginf = login_check.readlines()
# 登录账号和密码的对比
for line in loginf:
line = line.split()
if username == line[0] and password == line[1]:
exit("\033[32;1m登录成功!欢迎您,%s\033[0m" %username)
elif username == line[0] and password != line[1]:
pass_count = 0
while pass_count < 3:
print("\033[31;1m您的密码错误,剩余尝试次数[%s]次\033[0m" %(2-pass_count))
password_r = input("请重新输入密码:")
pass_count += 1
if password_r == line[1]:
exit("\033[32;1m登录成功!欢迎您,%s\033[0m" % username)
if pass_count == 2:
print("\033[31;1m你的密码输入错误次数已经达到最大,账号[%s]被锁定\033[0m" %username)
in_lock = open("lock.txt", 'a+')
in_lock.write(username)
in_lock.write('\n')
in_lock.close()
exit() else:
print("您的账号[%s]不存在,请注册" %username) count += 1
if count == 3:
print("您已经尝试3次,登录失败")
else:
print("请重新输入:")
为了配合登录界面功能的实现,我又写了一个注册界面的编写
Author:Zhu def username_check(username):
while True:
file_check = open('user.txt', 'r')
for line in file_check.readlines():
line = line.split()
if username == line[0]:
print("账号已经存在,请重新输入账号:")
return 0
else:
print("可以注册")
return 1
break while True:
username = input("请输入您的账户名:")
if username_check(username) == 1:
break
else:
continue
while True:
password_first = input("请输入您的密码: ")
password_second = input("请再次输入您的密码")
if password_first == password_second:
file_reg = open('user.txt', 'a+')
file_reg.write(username)
file_reg.write(' ')
file_reg.write(password_first)
file_reg.write('\n')
break
else:
print("您输入的两次密码有误,请重新输入")
continue
print("注册成功,请记住您的账号和密码\n账号:{name}\n密码:{pwd}".format
(name=username,pwd=password_first))
Python3 编写登陆接口的更多相关文章
- python之编写登陆接口(第一天)
作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 针对此实例写了有二种类型的脚本,略有不同,具体如下: 帐号文件account.txt内容如下: sam 123 david ...
- Python学习之编写登陆接口(Day1,作业一)
作业一:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定(下次登陆还是锁定) 知识点:while循环,for循环,文件操作,if判断,列表操作 思路: 1.登陆,三次登陆失败,锁定 ...
- day1作业:编写登陆接口
作业一:编写登陆接口 1.输入用户名和密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 思路:要求是编写登陆接口,那么要有一个存放用户信息的模块:三次后锁定,要有一个存放锁定用户信息的模块:我们知 ...
- day1作业一:编写登陆接口
作业一:编写登陆接口 1.输入用户名和密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 Readme: (1)提示用户输入用户名: (2)用户名验证,验证是否已经锁定: (3)是否锁定:已锁定告诉 ...
- 使用 Python 编写登陆接口
# 使用 Python 编写登陆接口# Create Date: 2017.10.31 Tuesday# Author: Eric Zhao# -*- coding:utf-8 -*-'''编写登陆接 ...
- python3编写登录接口
#/usr/bin/env python#yehui'''作业一:博客 作业二:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定'''import getpass, os, pic ...
- Python学习第一天-编写登陆接口
编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 帐号文件user.txt内容如下: qaz 123qwe 12345qweqwr 12321424...... 锁文件user_l ...
- python 作业 编写登陆接口
# -*- coding:utf-8 -*-import os,sysfor i in range(3):#进行3次循环 blacklist = open(r"C:\Users\Pc4\De ...
- Python之编写登陆接口
1.输入用户名密码: 2.认证成功后显示欢迎信息: 3.错误三次后,账号被锁定. 账号文件:user.txt 锁定文件:locked.txt 流程图如下: # -*- coding:utf-8 -*- ...
随机推荐
- 产品架构model
- 转 一个SMD 0805的LED的电流,电压,亮度关系表
Vf就是led的导通电压. 一个SMD 0805的LED的电流,电压,亮度关系表Vf If(算) 亮度1.74v 0.46mA 做指示灯不刺眼刚 ...
- iframe高度100%,自适应高度
声明:有更好的方法在下一篇内容中 100% http://www.360doc.com/content/11/1102/15/55892_161105115.shtml iframe自适应高度 转自: ...
- JSP-Runoob:JSP 语法
ylbtech-JSP-Runoob:JSP 语法 1.返回顶部 1. JSP 语法 本小节将会简单地介绍一下JSP开发中的基础语法. 脚本程序 脚本程序可以包含任意量的Java语句.变量.方法或表达 ...
- bzoj1018
线段树分治+并查集 线段树本身就是分治结构,碰见这种带删除修改的题目是再合适不过的,我们对于每段修改区间在线段树上打标记,每次路过就进行修改,叶子结点表及答案,先把所有修改在线段树上标记,然后dfs就 ...
- IDEA Spark Streaming Flume数据源 --解决无法转化为实际输入数据,及中文乱码(Scala)
需要三步: 1.shell:往 1234 端口写数据 nc localhost 1234 2.shell: 启动flume服务 cd /usr/local2/flume/bin ./flume-ng ...
- Akka源码分析-Actor发消息
前面两篇文章简单介绍了ActorSystem.actor以及dispatcher和mailbox的创建,下面我们就来看一下actor发消息的内部机制. val system = ActorSystem ...
- Canvas和SVG的基础知识,以及两者的区别(小白)
首先我们来说一下Canvas是什么,它有什么作用以及它的知识点. Canvas是<HTML5>的新标签,它通常用于通过脚本(也就是JavaScript)来绘制图像.但是它本身并没有绘制能力 ...
- 关于 android屏幕适配
一.关于布局适配 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如 ...
- 关于linux下的.a文件与 .so 文件
连续几天终于将一个又一个问题解决了,这里说其中一个问题 描述问题:使用多线程pthread的时候,(我用的IDE,CODEBOLCKS)编译后发现直接弹出窗口,程序还没有被Build..巴拉巴拉,然后 ...