Python三次登陆
题目:Python实现三次登陆
不要急于马上把三次登陆写出来,一定要将复杂的程序简单化,必须一步一步地去扩展,这样才保证不会出错。
步骤一:实现简单的一次登陆
# 事先定义
user = 'dark_knight'
pwd = 'dk123' username = input('Please enter username:')
password = input('Please enter password:') # 判断
if username == user and password == pwd:
print('Login successfully!')
else:
print('Login failed!')
步骤二:实现简单的三次登陆
# 事先定义
user = 'dark_knight'
pwd = 'dk123'
count = 1 # 定义次数 while True:
if count == 4: # 大于3次则退出循环
print('Too many times!')
break
username = input('Please enter username:')
password = input('Please enter password:') # 判断
if username == user and password == pwd:
print('Login successfully!')
break
else:
print('Login failed!') count += 1 # 每次循环都次数都进行加1操作
步骤三:解决三次登陆中的BUG
1、去除字符串两边的空格
2、当用户输入None时则提示用户反复输入。
3、当用户输入的信息不匹配时则告诉用户还有几次机会。
# 事先定义
user = 'dark_knight'
pwd = 'dk123'
count = 1 # 定义次数 while True:
if count == 4: # 大于3次则退出循环
print('Too many times!')
break
username = input('Please enter username:').strip() # 去除字符串两边的空格
password = input('Please enter password:').strip() # 去除字符串两边的空格 # 当用户输入有值时
if username and password:
# 判断
if username == user and password == pwd:
print('Login successfully!')
break
else:
print('Login failed!')
print('You have %s chance.'%(3 - count)) # 当用户输入None时
else:
print('You enter blank, please re-enter!')
continue # 当用户输入None时,跳出本次循环。 count += 1 # 每次循环都次数都进行加1操作
步骤四:扩展三次登陆
要求:将登陆三次失败后的用户进行锁定。
思路:1、先手动创建一个黑名单文件。
2、再创建一个空列表,将每次输入错误的用户名添加至列表中。
3、当加入列表中的用户名出现3次相同的用户名时,把这个用户名添加至黑名单进行锁定。
user = 'knight'
pwd = 'dk123'
count = 1
times = [] # 用于统计密码输错时的用户名的个数 with open('blacklist.txt', 'r', encoding='utf-8') as f_black:
black_line = f_black.readlines() # 将黑名单内容以列表的形式读出来
# print(black_line) while True: # 当登陆次数超过3次时提示登陆次数过多,退出程序
if count == 4:
print('Too many times!')
break username = input('Please enter your username:').strip()
password = input('Please enter your password:').strip() # 判断用户名是否为空
if not username:
print('The username you entered is blank, please re-enter')
continue # 判断密码是否为空
elif not password:
print('The password you entered is blank, please re-enter')
continue # 判断用户名再加上"\n"是否在黑名单的列表里,如果在则提示用户已锁定再退出程序
if username + '\n' in black_line:
print('Sorry, your account has been locked!')
break # 判断用户名和密码是否匹配
if username == user and password == pwd:
print('Login successfully!')
break
else:
print('The username or password you entered is incorrect,Please try again!')
print('You still have %s chances' % (3 - count)) # 如果不匹配则提示用户名或密码错误并告之用户还有几次机会 times.append(username) # 将错误的用户名加入至事先定义的times列表中,
if times.count(username) == 3: # 然后计算加入的用户名的个数是否等于三个,如果是则写入至黑名单文件中。
with open('blacklist.txt', 'a', encoding='utf-8')as f:
f.write(username+'\n')
count += 1
Python三次登陆的更多相关文章
- python小练习:用户三次登陆, 购物车
2018.12.1 周末练习: 1.用户三次登陆 from random import randint i = 1 while i < 4: num = 0 verify_code = '' w ...
- 【小白学爬虫连载(10)】–如何用Python实现模拟登陆网站
Python如何实现模拟登陆爬取Python实现模拟登陆的方式简单来说有三种:一.采用post请求提交表单的方式实现.二.利用浏览器登陆网站记录登陆成功后的cookies,采用get的请求方式,传入c ...
- python实现用户登陆(sqlite数据库存储用户信息)
python实现用户登陆(sqlite数据库存储用户信息) 目录 创建数据库 数据库管理 简单登陆 有些地方还未完善. 创建数据库 import sqlite3 #建一个数据库 def create_ ...
- python通过SSH登陆linux并操作
使用python通过SSH登陆linux并操作 用的昨天刚接触到的库,在windows下通过paramiko来登录linux系统并执行了几个命令,基本算是初试成功,后面会接着学习的. 代码: > ...
- Python实现模拟登陆
大家经常会用Python进行数据挖掘的说,但是有些网站是需要登陆才能看到内容的,那怎么用Python实现模拟登陆呢?其实网路上关于这方面的描述很多,不过前些日子遇到了一个需要cookie才能登陆的网站 ...
- asp:第三平台登陆
第三平台登陆接口申请网址: http://open.51094.com/ 文档: 第三方合作登录平台使用说明 为方便更多的开发朋友,本人特将当前市面上所有支持第三方联合登录的接口集为一体,以前需要多次 ...
- python使用post登陆电子科大信息门户并保存登陆后页面
python使用post登陆电子科大信息门户并保存登陆后页面 作者:vpoet mail:vpoet_sir@163.com #coding=utf-8 import HTMLParser impor ...
- 【转】python 三种遍历list的方法
[转]python 三种遍历list的方法 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': list ...
- python爬虫模拟登陆
python爬虫模拟登陆 学习了:https://www.cnblogs.com/chenxiaohan/p/7654667.html 用的这个 学习了:https://www.cnblogs.co ...
随机推荐
- Rest 参数(...)
javascript 之Rest 参数(...) ES6 Rest参数 Rest就是为解决传入的参数数量不一定, rest parameter(Rest 参数) 本身就是数组,数组的相关的方法都可以用 ...
- MySQL基础:show命令总结
show命令 show命令可以提供关于数据库.表.列,或关于服务器的状态信息. 总结 # 显示二进制文件以及文件大小(需要开启二进制日志记录功能) SHOW {BINARY | MASTER} LOG ...
- 剑指offer---最小的K个数
题目:最小的K个数 要求:输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. class Solution { public: ...
- 39页第7题 计算2的i次方之和
/*计算2的i次方之和*/ #include<stdio.h> #include<math.h>/*调用math.h文件中的函数*/ int main(void) { int ...
- xfce 安装文泉驿字体
下载文泉驿字体 #拷贝字体到目录/usr/share/fonts/wqy#创建字体缓存 mkfontscale # 在当前目录下生成fonts.scale文件 mkfontdir # 在当前目录下生成 ...
- 常用的HTTP测试工具谷歌浏览器插件汇总
网页的开发和测试时最常见的测试就是HTTP测试,作为曾经的测试人员在这方面还是略知一二的.其实做网页测试工作是非常繁琐的时期,有时候甚至是无聊重复的,如果没有网页测试工具的帮助的话,测试人员会越做越怀 ...
- PAT 1131 Subway Map
In the big cities, the subway systems always look so complex to the visitors. To give you some sense ...
- Spring核心技术(一)——IoC容器和Bean简介
IoC容器和Bean简介 这章包括了Spring框架对于IoC规则的实现.Ioc也同DI(依赖注入).而对象是通过构造函数,工厂方法,或者一些Set方法来定义对象之间的依赖的.容器在创建这些Bean对 ...
- 百练2755:神奇的口袋(简单dp)
描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an.John可以从这些物品中选择一些 ...
- 【Codeforces 382C】Arithmetic Progression
[链接] 我是链接,点我呀:) [题意] 让你在n个数字中再加入一个数字 使得这n+1个数字排序之后 相邻两个数字的差都相同 [题解] 注意相邻为0的情况 这种情况 只有全都相同才行 只有一种情况 然 ...