1.先做一个基础版:用字符串存储一个密码,与用户输入的字符进行匹配,用for循环限制输入次数为3次,完成后打印验证结果。


mima='123456'
for i in range(3):password=input('请输入六位数字密码:')if password==mima:print('密码正确。')breakelse:print('密码错误,请重新输入。')
else:print('3次机会已用完。')

2.改为用字典存储多组用户名和密码,用户输入的用户名和密码与字典进行比对验证,只有用户名和密码都匹配时才能验证通过,并且改为用while循环来限次数。


mimaben={'张三':'123456','李四':'112233','王五':'666666'}
time1=0
while time1<3:xingming=input('请输入用户名:')mima1=input('请输入6位数字密码:')if xingming not in mimaben.keys():print('用户名不存在,请重新输入。')elif mima1==mimaben[xingming]:print('密码正确。')breakelse:print('密码错误,请重新输入。')time1=time1+1
else:print('3次机会已用完。')

3.加入一个小功能:提示用户密码错在哪里,是长度不对还是格式不对,并且提示已经用了几次机会。

格式不对的意思是用户输入的是非数字密码,长度不对的意思是密码长度不是6位,这两个条件限制了用户必须输入6位数字密码才行。


mimaben={'张三':'123456','李四':'112233','王五':'666666'}
time1=0
while time1<3:xingming=input('请输入用户名:')mima1=input('请输入6位数字密码:')if xingming not in mimaben.keys():print('用户名不存在,请重新输入。')elif mima1==mimaben[xingming]:print('密码正确。')breakelse:if len(mima1)!=6:print(f'密码长度错误,已使用{time1+1}次机会,共3次,请重新输入。')elif mima1.isdecimal()==False:print(f'密码格式错误,已使用{time1+1}次机会,共3次,请重新输入。')else:print((f'密码不对哦,已使用{time1+1}次机会,共3次,请重新输入。'))time1=time1+1
else:print('3次机会已用完。')

4.继续完善,在以上的基础上,加入一个tongguo变量并初始化为false,把以上的所有while循环内容嵌套在一个新的while循环内,在验证通过时把tongguo重新赋值为true,结束所有循环。通过这个方法把用户名和密码的验证分开,先验证用户名,用户名正确后再输入和验证密码,过程同上。


mimaben={'张三':'123456','李四':'112233','王五':'666666'}
time1=0
tongguo=False
while tongguo==False:name1=input('请输入用户名:')    if name1 not in mimaben.keys():print('用户名不存在,请重新输入:')else:while time1<3:mima1=input('请输入6位数字密码:')if mima1==mimaben[name1]:print(f'恭喜,验证通过,共用{time1+1}次机会。')tongguo=Truebreakelse:if len(mima1)!=6:print(f'密码长度错误,已使用{time1+1}次机会,共3次,请重新输入。')elif mima1.isdecimal()==False:print(f'密码格式错误,已使用{time1+1}次机会,共3次,请重新输入。')else:print((f'密码不对哦,已使用{time1+1}次机会,共3次,请重新输入。'))time1=time1+1else:print('验证失败,3次机会已用完。')break

Python练手小项目(11)用户名密码验证的初步探索相关推荐

  1. Python练手小项目

    一.画爱心表白 1.图形都是由一系列的点(X,Y)构成的曲线,由于X,Y满足一定的关系,所以我们就可以建立模型,建立表达式expression,当满足时,两个for循环(for X in range: ...

  2. 学python适合做什么生意_吹爆这8个Python练手小项目,轻松易学

    知识本质上只是信息,我们最需要的知道的是,学以致用,做到什么程度,才是我们学习的目的所在,所以练手!实干!才是最重要的!以下就是今日推荐的简单好实现练手神器! 1. Kaggle 实战之波士顿房价预测 ...

  3. Python练手小项目——随机加减法生成器

    为了让外甥女练习算术,用python给她写了个自动出加减法的小程序. 该程序使用了文字转语音的库pyttsx,程序运行时,会有相对应的语音提示.pyttsx文档 为了防止小孩乱按键盘,导致非法输入,我 ...

  4. python项目作业_期末作业.py · 光辉/python练手小项目 - Gitee.com

    # 期末考试 # 题1 ''' 在这一个月,我们学了python基础,简单总结下,有六种数据类型和函数. (1)请从str,list,dict,set选出 1 种数据类型,进行归纳总结. (2)请整理 ...

  5. Python练手小项目(4)计算体重身高指数BMI

    身体质量指数,是BMI(Body Mass Index [4]  )指数,简称体质指数,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准. 计算公式为:BMI=体重÷身高2.(体重单位:千克:身高 ...

  6. Python练手小项目(5)斐波那契数列及其曲线的绘制

    斐波那契数列,也叫黄金分割数列.兔子繁殖数列等,其实很简单,数列的前几项是这样的:1.1.2.3.5.8.13.21.34.--从第三项开始,后面的一项等于前面两项之和,在科学领域有很多应用,在自然界 ...

  7. Python练手小项目(12)斐波那契曲线的改进

    在第5课中我们简单的绘制了斐波那契数列的曲线,本节我们对曲线进行一些小小的改进,首先是用一个正方形把每一段曲线框起来,然后为每一段曲线添加一个尺寸标注. #斐波那契的改进20220518: impor ...

  8. Python练手小项目(6)随机取红黑球并计算概率

    1.一只不透明的袋子里装有两个小球,分别为红色和黑色,除此之外小球的重量.材质.手感等完全一致,随机从袋子里拿出一只小球,会是什么颜色? import random bags=["red&q ...

  9. Python练手小项目(3)提取身份证信息(初级)

    ''' 身份证号码由18位数字组成 第1-6位数字表示所在省份和城市.区县的代码 第7~14位数字表示:出生年.月.日 第15~17位为同一区域内同年同月同日出生的顺序号 第17位表示性别,奇数表示男 ...

最新文章

  1. 矩阵计算在计算机科学中,开发者必读:计算机科学中的线性代数(附论文)
  2. mysql远程权限grant_mysql 赋给用户远程权限 grant all privileges on
  3. [JQuery]用InsertAfter实现图片走马灯展示效果
  4. 云原生一体化数仓发布
  5. 最短路径算法----floyd(转)
  6. 华为交换机ssh思科交换机_华为交换机 ssh 配置(极简版)
  7. Java 产生随机数:Java 中产生随机数的方法及应用汇总
  8. 前端js-angluar定时刷新器
  9. 60佳优秀的国外电子商务网站设计案例(上篇)
  10. bootstrap交互式网页设计工具_3款强大的BootStrap的可视化制作工具推荐
  11. 单片机 MSP430 G2553 F5529 蜂鸣器 音乐 音乐播放器
  12. 【HTML5】创造一款成功HTML5游戏的完整指南
  13. 【OpenCV】 车牌识别检测
  14. DELL戴尔开启/关闭触摸板方法
  15. mp3转wav方法,mp3转wav步骤
  16. 如何在云服务器上部署程序
  17. DirectX11入门篇
  18. php加减法计算器程序,用php简单实现加减乘除计算器
  19. java版我的世界有溺尸_我的世界如何刷溺尸_minecraft溺尸陷阱制作教程 - 我的世界中文站...
  20. 关于interrupt(),interrupted(),isInterrupted()用法分析

热门文章

  1. 无障碍设计标准中的对比度
  2. pcb布线时爬电距离的总结与算法
  3. Newifi mini路由器刷华硕Padavan固件及无线中继笔记
  4. 光华股份深交所上市:市值51亿 应收账款余额超5亿
  5. ARM裸机开发篇3:ARM汇编语言程序设计
  6. 云计算机渲染效果,什么是云渲染?云渲染这么用?
  7. 【浏览器兼容】火狐浏览器滚动条不出现问题
  8. Android 底部导航栏+页面切换
  9. 常用html/css/js学习(会持续更新)
  10. 配置nginx + keepalived双主模式(双机互为主备)