登录模块:

  我们无论上那个网站,经常遇到这样的情况,让我们登录这个网站,流程图如下:

  

思路:

  1.当我们登录网站的时候,我们首先会输入用户名,这个时候,有些网站会提醒我们用户名是否存在,如果我们输入的用户名不存在的话,会出现提示,告诉我们用户名不存在,这个时候,我们就需要重新输入,或者选择注册,当然,我们这里只是让用户重新输入;

  2.用户名存在的话,就需要输入密码,我们知道,输入密码的时候,我们是不验证密码是否正确的,如果直接先验证密码是否正确,也就失去了让用户输入验证码的作用,因此我们总是先不验证密码,而是让用户输入验证码,先验证用户输入的验证码是否正确;

  3.如果验证码不正确,则让用户重新输入验证码;如果验证码正确,那么这个时候就要返回来重新验证密码是否正确;如果密码正确,就登录成功了;否则,如果密码不正确,这个时候,就需要用户重新输入密码,由于这个时候,用户已经输入了用户名,因此不需要再重新输入用户名了,只需要输入密码和验证码即可;即重新输入密码,然后输入验证码;如果密码正确,则登录成功,否则重新输入密码和验证码,验证码是每次输入密码必须输入的;

  要实现上述代码的功能,肯定要使用while循环,由于是逐层检验,因此用户名的输入肯定是一个循环,直到用户输入正确的验证码为止,关键是,如何实现用户名正确,当密码或者验证码输入错误的时候,不需要重新输入用户名,不然会让人鄙视的;这个时候就要考虑,当用户名正确的时候,就要停止这个循环了,不能再执行下一次用户输入密码或验证码的时候循环输入用户名。

  代码的实现如下:

  

def login(name,password):'''用户登录模块,用户登录时候的各种设置,本次实现功能''''''用户登录验证的时候,一般会先判断验证码是否正确,因此要让用户首先验证验证码'''active = Truewhile True:while active:username = input("请输入你的用户名:")'''首先验证用户名是否存在'''users = []for user_list in userfile.usernames:users.append(user_list[0])if username in users:active = Falseelse:print("对不起,您输入的用户名不存在,请重新输入:")pwd = input("请输入你的密码:")while True:'''加入一个用户输入验证码的模块,让用户输入验证码'''verification_code = str(random.randint(0,9)) + chr(random.randint(65,90)) + str(random.randint(0,9)) + chr(random.randint(97,122))print(verification_code)test_num = input("请输入验证码:")if test_num == verification_code.lower() or test_num == verification_code.upper():'''无论用户输入大小写都可以验证成功''''''用户验证成功后,开始进行用户自己的认证,是否注册,或者用户名正确'''breakelse:print("您输入的验证码有误,请重新输入!")if [username,int(pwd)] in userfile.usernames:print("Successful!")return (username,pwd)else:print("对不起,您输入的密码有误,请重新输入:")

  上述代码运行如下:

请输入你的用户名:geng
请输入你的密码:123
3D0t
请输入验证码:3d0t
对不起,您输入的密码有误,请重新输入:
请输入你的密码:222
8I9z
请输入验证码:8888
您输入的验证码有误,请重新输入!
2G0j
请输入验证码:8888
您输入的验证码有误,请重新输入!
7T1a
请输入验证码:7t1a
对不起,您输入的密码有误,请重新输入:
请输入你的密码:2222
7X4q
请输入验证码:7x4q
对不起,您输入的密码有误,请重新输入:
请输入你的密码:666
2O0q
请输入验证码:2o0q
Successful!
('geng', '666')

  上述代码的执行结果如上所示,当我们想单独停止一个循环的时候,可以给这段循环设置一个标识符,用来开启或者关闭循环,当满足条件的时候,关闭这个循环,让这个循环在执行其他程序的时候不会开启;

   active = True
  while True:
  while active:
    username = input("请输入你的用户名:")
    '''首先验证用户名是否存在'''
    users = []
    for user_list in userfile.usernames:
      users.append(user_list[0])
  if username in users:
  active = False
  else:
    print("对不起,您输入的用户名不存在,请重新输入:")
    pwd = input("请输入你的密码:")

  上述代码,我们就实现了这样的功能,当我们想停止这个循环的时候,我们就让内层循环的标识符关闭。

转载于:https://www.cnblogs.com/gengcx/p/7128805.html

day4作业小代码练习相关推荐

  1. python 小甲鱼 代码_Python小代码

    先自我介绍一下,本人是正在自学Python的小白,没事分享一下自己写的小代码,欢迎在评论区补充. 游戏管理系统: 代码如下: def healthe(m):if m=="Y"or ...

  2. python小游戏_课程设计_期末大作业——小游戏合集(含源代码)

    设计小游戏盒子 本文代码链接 点击直接下载 https://download.csdn.net/download/Wps1919/87103302?spm=1001.2014.3001.5501 如将 ...

  3. HTML5+CSS期末大作业:运动体育网站设计主题——体育铅球(5页)带注册 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品...

    常见网页设计作业题材有 ​​个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体育. 化妆品. 物流. 环保. 书籍. 婚纱. 军 ...

  4. HTML期末大作业~ 小黄车ofo环保 ~学生网页设计作业源码(HTML+CSS)

    HTML期末大作业~ 小黄车ofo环保 ~学生网页设计作业源码(HTML+CSS) 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数量太多 ...

  5. HTML5期末大作业:直播网站设计——仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码

    HTML5期末大作业:直播网站设计--仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码 临近期末, 你还在为HTML网页设计结课作业, ...

  6. php读取子目录下文件内容,php小代码----目录下读取子文件或子目录_PHP教程

    php小代码----目录下读取子文件或子目录 rootPath = $rootPath; if (is_dir($this->rootPath)) { $this->rootPath = ...

  7. 七夕表白小代码喜欢的拿去

    今天是七夕了,在这里祝各位有女朋友男朋友的,祝你们呢天长地久,没有对象的小伙伴们呢,就祝你们能找到自己的另一半,有喜欢的人不敢表白的,那就要看过来了,看着高深又有科技感的简单表白小代码它来啦!!! 开 ...

  8. vba 判断目标单元格内容改变的代码_【VBA小代码】批量改变单元格部分字符格式...

    有朋友问:能不能批量将单元格中的部分字符改变格式,比如改变字体,字号,改变颜色--举个例子,如下图所示,将"领导"两个字--字体变成15号,红色加粗--干了这碗毒鸡汤,天黑就闭眼- ...

  9. HTML5+CSS期末大作业:运动体育网站设计主题——体育铅球(5页)带注册 期末作业HTML代码

    学生网页课程设计期末作业下载 web网页设计制作成品- 详情介绍 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. ...

最新文章

  1. python代码画皮卡丘_Python气象绘图实例我们一起画台风(代码+数据)
  2. zoj2760(最大流)
  3. Anaconda conda常用命令
  4. 做弱电机房工程的时候,如何解决机房称重问题?
  5. 微信jssdk 图片上传 JAVA_微信jssdk图片上传
  6. 九、玩转JavaScript的数组(五)
  7. 监听js变量的变化_Node.js从零开始——事件、系统和流
  8. 15.确保“lessT“与“operator小于“具有相同的语义
  9. android sudio jni 调用so_UE4:UPL 与 JNI 调用的最佳实践
  10. 智能机器人正催生新的工业革命
  11. 145_Power BI Report Server自定义Form登录
  12. 数据库的主键和外键总结
  13. 搜索引擎优化(SEO,Search Engine Optimization)如何让你的网站靠前排名
  14. 如何有效创建工作分解结构?
  15. uniapp实现微信公众号支付
  16. Photoshop压缩png图片
  17. 特价酒店预定应用HotelTonight获Battery和Accel 900万投资
  18. 张涵诚对于税务信息化跨入大数据云计算时代的思考
  19. SpringCloud 微服务工具集v1.1
  20. 跟这台计算机连接的一个USB设备运行不正常,Windows无法识别

热门文章

  1. WARNING: IPv4 forwarding is disabled. Networking will not work.
  2. 路由器性能测试工具_小米路由器AX3600与AX1800 MESH 实测
  3. 友益文书类似软件_网易有道词典笔,让你的英文书也有实时翻译功能
  4. 采用JAVASCRIPT实现全选的三种情况
  5. 1.Java 面试题整理(基础篇一)
  6. 【hdu3441】Rotation,Polya套Polya
  7. easyui 添加下拉框数据_功能更新:熟用仪表盘这个功能,你可以少建90%的数据报表...
  8. iphone退款申请教程_【揭秘】朋友圈卖的iOS退款、王者荣耀0元撸点券教程
  9. 2017.5.9 寻找道路 思考记录
  10. 2017.3.25 矩阵快速幂 求斐波那契数列第n项