近日重新整理了登陆接口设计程序,感觉以前的代码没有注释,让园子的其他童鞋读起来比较费劲。也没有流程图和程序运行说明。

1.流程图

2.user_file.txt&lock_file.txt文件内容

(1) user_file.txt

Abel 123
Bbel 1234
Cbel 123456

(2) lock_file.txt

Dbel

3.程序运行说明

(1)输入用户名,程序对比lock_file.txt。如果存在则提示该用户已经被锁定,退出程序。

(2)程序查找用户名是否在user_file.txt中,如果不在提示用户,并退出程序。

(3)用户输入密码,连续输入三次以内,密码正确。提示欢迎,并退出程序。

(4)密码连续输入错误3次,提示用户已经被锁定,并将用户名写入lock_file.txt中。退出程序。

4.程序代码

 import os

 user_file = open('use_file.txt', 'r')  # 打开user_file.txt
user_list = user_file.readlines() # 一次性将user_file.txt中的内容加载到内存中
user_file.close() # 关闭user_file.txt while True:
lock_file = open('lock_file.txt', 'r+') # 打开lock_file.txt
lock_list = lock_file.readlines() # 将lock_file.txt中的内容加载到内存中
lock_file.close() # 关闭lock_file.txt login_Success = False # 设置标记位,用于跳出循环
user_name = input('Please enter your name:'.strip()) # 输入用户名
for line1 in lock_list:
line1 = line1.split() # 将lock_file.txt中的信息读取到line1中
if user_name == line1[0]: # 如果用户名在line1中提示信息并退出整个程序
print("对不起!您的用户名已经被锁定,请联系网站管理员。")
exit()
for line2 in user_list:
line2 = line2.split() # 将user_file.txt中的信息读取到line2中
if user_name == line2[0]: # 如果用户名在line2中进入for循环(输入密码三次错误锁定)
for i in range(3): # 计数器,记录密码输入错误次数
password = input('Please enter your password'.strip()) # 输入密码
if password == line2[1]: # 如果password在line2[1]中,显示欢迎信息,并退出整个程序
print("欢迎 %s 登陆Abel网站!" % user_name)
login_Success = True
break
else: # 密码输入错误次数超过3次,将用户名写入lock_file.txt中
f = open('lock_file.txt', 'a')
f.write('%s\n' % user_name)
f.close()
print("连续输入3次错误密码,您的用户%s已经被锁定,请联系网站管理员。" % user_name) # 提示用户已经锁定,并退出整个程序
login_Success = True
break
if login_Success:
break
else: # 用户名不在line2中,提示用户名不存在。并退出整个程序
print("您输入的用户名不存在,请重新输入或注册")
exit()
if login_Success:
break

python——登陆接口设计(循环方法)的更多相关文章

  1. Python之登陆接口设计

    刚刚开始学习Python,第一个编写的程序. import os user_file = open('use_file.txt', 'r') user_list = user_file.readlin ...

  2. python 登陆接口

    #!/usr/bin/env pythonimport sysname = ''pw=''name_num = 0pw_num = 0#black_list = []with open('a.txt' ...

  3. python登陆接口编写

    #coding:utf-8 import getpass,sys i=0 j=0 while i<3: username=raw_input('username:') #输入用户名 life_1 ...

  4. 像计算机科学家一样思考python-第4章 案例研究:接口设计

    系统环境 ubuntu18 4.1turtle模块 模块一开始导入turtle模块就报错了 Python ( , ::) [GCC ] on linux Type "help", ...

  5. python 作业 编写登陆接口

    # -*- coding:utf-8 -*-import os,sysfor i in range(3):#进行3次循环 blacklist = open(r"C:\Users\Pc4\De ...

  6. Python基础-接口与归一化设计、抽象类、继承顺序、子类调用父类,多态与多态性

    一.接口与归一化设计 Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 由 ...

  7. python之编写登陆接口(第一天)

    作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 针对此实例写了有二种类型的脚本,略有不同,具体如下: 帐号文件account.txt内容如下: sam 123 david ...

  8. 优秀的API接口设计原则及方法(转)

    一旦API发生变化,就可能对相关的调用者带来巨大的代价,用户需要排查所有调用的代码,需要调整所有与之相关的部分,这些工作对他们来说都是额外的.如果辛辛苦苦完成这些以后,还发现了相关的bug,那对用户的 ...

  9. Python学习之编写登陆接口(Day1,作业一)

    作业一:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定(下次登陆还是锁定) 知识点:while循环,for循环,文件操作,if判断,列表操作 思路: 1.登陆,三次登陆失败,锁定 ...

随机推荐

  1. MVC-07 案例2

    二.电子商务网站 掌握该网站的开发流程和设计思路,并为数据模型中商品.商品分类,这两个类编写代码. 1.需求分析 2.数据模型规划 (1)商品类别 (2)商品信息 (3)会员信息 (4)购物车项目 ( ...

  2. Jacob

    http://www.cnblogs.com/luckyxiaoxuan/archive/2012/06/13/2548331.html http://blog.csdn.net/qingwangyo ...

  3. 盘点:移动服务 #AzureChat

    感谢大家帮助我们顺利推出史无前例的 #AzureChat.移动服务和 Notification Hub 是 Windows Azure 平台上令人振奋的服务.我们很高兴能借这次在线讨论的机会,倾听各位 ...

  4. java循环HashMap两种方法的效率比较

    一.循环HashMap的两种方式 方式1: Iterator<Entry<String, String>> entryKeyIterator = entrySetMap.ent ...

  5. C++_template_栈的链式存储及实现

    由于在C++数据结构中的代码不完整,特补全.等日后当工程库调用. 若有疑问,请留言. #include<iostream> using namespace std; template< ...

  6. linux 中多线程使用

    /* * 对于线程之间的操作: * 一个进程中会有多个线程,各个线程之间的或向切换会付出很小的代价相比于进程之间的切换 * 为什么要引入多线程: * 1.与进程相比,他是一种非常节俭的多任务的操作方式 ...

  7. Longest Substring Without Repeating Characters - 哈希与双指针

    题意很简单,就是寻找一个字符串中连续的最长包含不同字母的子串. 其实用最朴素的方法,从当前字符开始寻找,找到以当前字符开头的最长子串.这个方法猛一看是个n方的算法,但是要注意到由于字符数目的限制,其实 ...

  8. [Swust OJ 797]--Palindromic Squares(回文数水题)

    题目链接:http://acm.swust.edu.cn/problem/797/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  9. STL之deque(双向队列)

    deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque在vector函数的基础上增 ...

  10. CoffeeScript 入门笔记

    写在前面: 被英文版指南坑了...闹了很久才明白.coffee怎么用.安装前需要有稳定版 Node.js, 和 npm (Node Package Manager). 借助 npm 可以安装 Coff ...