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 -*- ...
随机推荐
- 2015南阳CCPC H - Sudoku 数独
H - Sudoku Description Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny g ...
- idea2016的使用心得 --- 太棒了
今天打开myeclipse感觉里面全是project,也懒着换地方了,因为这些代码还要时常看,索性安装了idea试试水,感觉还不错,用起来并不比myeclipse差,跟webstorm差不多,他俩就是 ...
- B1818 [Cqoi2010]内部白点 树状数组
这个题的想法很好想,就是进行排序之后直接检查每个点的上下左右是否有黑点就行.但是直接枚举显然不行,那怎么办呢?我们就用树状数组维护扫描线,把每排左右点看成一条线覆盖,然后从下往上扫,遇到下加一,遇到上 ...
- Jar包中文乱码问题
项目上遇用winrar修改替换jar中一个中文文件名后出现jar包解压读取错误问题,被这个问题纠缠了两次,都是现场比较情急的情况,于是就研究一下彻底弄清楚这个问题.中间也网上搜过一些内容,但实际测试不 ...
- HTTP协议下可拖动时间轴播放FLV的实现(伪流媒体)
HTTP协议下实现FLV的播放其实并不复杂,当初实现的原理是使用了flowPlayer插件实现的,效果还不错.但仍有两大问题影响着客户的访问情绪: 1.预加载时页面卡死,似乎没有边下边播. 2.偶尔边 ...
- C. Unusual Product(cf)
http://codeforces.com/problemset/problem/405/C 题意: 给出一个n*n的矩阵,有q个操作,输入3时,输出A ,A等于第i行乘以第i列的对应元素的和(mod ...
- Vue Router的params和query传参的使用和区别
vue页面跳转有两种方式分别是:name和path this.$router.push({name: 'HelloWorld2}) this.$router.push({path: '/hello-w ...
- ORA-01075: you are currently logged on
[root@hear01 ~]# su - oracle[oracle@hear01 ~]$ sqlplus "/as sysdba" SQL*Plus: Release 11.2 ...
- 【转】Linux之printf命令
转自:http://blog.chinaunix.net/uid-9525959-id-2001528.html printf FORMAT [ARGUMENT]... printf OPTION [ ...
- asp.net mvc 最简单身份验证 [Authorize]通过的标准
[Authorize] public ContentResult Index2() { return Content("验证通过了"); } 经常能够看到某个Controler下的 ...