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 -*- ...
随机推荐
- 将ppt转换成PDF
import sys import os import glob import win32com.client def convert(files, formatType = 32): powerpo ...
- 使用VS2005安装和编译QT4.53源码
学习Qt,当然是QT4好.可是装了4.86以后,网上下载的书中的例子大多无法直接用VS执行(个人不喜欢用QT Creator),即打开pro转换的时候出错(我也懒的研究为什么出错了).看了一下发布时间 ...
- Selenium-一个用于Web应用程序测试的工具
Selenium.pptx
- 杂项:LDAP
ylbtech-杂项:LDAP 1.返回顶部 1. LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X. ...
- Java的Thread.currentThread().getName() 和 this.getName() 以及 对象.getName()区别???
最近在看Java多线程这本书,但是发现里面有个概念自己搞不清楚.就是Thread.currentThread().getName() 和 this.getName() 以及 对象.getName()区 ...
- Lambda表达式怎么写SQL中的in?
ambda表达式查询没有IN这个方法,可以变通一下,in查询的数组是否包含在映射对象里面的集合里 直接贴代码吧,一看就懂了 class Program { static void Main(strin ...
- curl 采集的时候遇到60报错怎么办?
1.到https://curl.haxx.se/ca/cacert.pem复制下文本粘贴到文件夹cart.pem 然后把catr.pem放到PHP的bin目录下 2.在php.ini中修改下面这句话, ...
- 深入Mysql字符集设置
作者: Laruence( ) 本文地址: http://www.laruence.com/2008/01/05/12.html 转载请注明出处 根据Chaos Wang的PPT整理而成, 在此 ...
- linq 分组
var data = from r in listRecords group r by new { r.CampaignId, r.CityId, r.Gift_DistributorId, r.Pr ...
- JQuery中常用的$.get(),$.post(),$.ajax(),$.getJSON(),load()的详解与区别
背景:因为最近需要获取本地的数据件进行项目测试,需要用到JQuery实现数据文件的读取,但是由于对JQuery内的获取文件方式不太了解,这次趁着机会进行一下总结.因为该总结是本人根据平常的使用及网上的 ...