Python练手小项目(11)用户名密码验证的初步探索
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)用户名密码验证的初步探索相关推荐
- Python练手小项目
一.画爱心表白 1.图形都是由一系列的点(X,Y)构成的曲线,由于X,Y满足一定的关系,所以我们就可以建立模型,建立表达式expression,当满足时,两个for循环(for X in range: ...
- 学python适合做什么生意_吹爆这8个Python练手小项目,轻松易学
知识本质上只是信息,我们最需要的知道的是,学以致用,做到什么程度,才是我们学习的目的所在,所以练手!实干!才是最重要的!以下就是今日推荐的简单好实现练手神器! 1. Kaggle 实战之波士顿房价预测 ...
- Python练手小项目——随机加减法生成器
为了让外甥女练习算术,用python给她写了个自动出加减法的小程序. 该程序使用了文字转语音的库pyttsx,程序运行时,会有相对应的语音提示.pyttsx文档 为了防止小孩乱按键盘,导致非法输入,我 ...
- python项目作业_期末作业.py · 光辉/python练手小项目 - Gitee.com
# 期末考试 # 题1 ''' 在这一个月,我们学了python基础,简单总结下,有六种数据类型和函数. (1)请从str,list,dict,set选出 1 种数据类型,进行归纳总结. (2)请整理 ...
- Python练手小项目(4)计算体重身高指数BMI
身体质量指数,是BMI(Body Mass Index [4] )指数,简称体质指数,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准. 计算公式为:BMI=体重÷身高2.(体重单位:千克:身高 ...
- Python练手小项目(5)斐波那契数列及其曲线的绘制
斐波那契数列,也叫黄金分割数列.兔子繁殖数列等,其实很简单,数列的前几项是这样的:1.1.2.3.5.8.13.21.34.--从第三项开始,后面的一项等于前面两项之和,在科学领域有很多应用,在自然界 ...
- Python练手小项目(12)斐波那契曲线的改进
在第5课中我们简单的绘制了斐波那契数列的曲线,本节我们对曲线进行一些小小的改进,首先是用一个正方形把每一段曲线框起来,然后为每一段曲线添加一个尺寸标注. #斐波那契的改进20220518: impor ...
- Python练手小项目(6)随机取红黑球并计算概率
1.一只不透明的袋子里装有两个小球,分别为红色和黑色,除此之外小球的重量.材质.手感等完全一致,随机从袋子里拿出一只小球,会是什么颜色? import random bags=["red&q ...
- Python练手小项目(3)提取身份证信息(初级)
''' 身份证号码由18位数字组成 第1-6位数字表示所在省份和城市.区县的代码 第7~14位数字表示:出生年.月.日 第15~17位为同一区域内同年同月同日出生的顺序号 第17位表示性别,奇数表示男 ...
最新文章
- 矩阵计算在计算机科学中,开发者必读:计算机科学中的线性代数(附论文)
- mysql远程权限grant_mysql 赋给用户远程权限 grant all privileges on
- [JQuery]用InsertAfter实现图片走马灯展示效果
- 云原生一体化数仓发布
- 最短路径算法----floyd(转)
- 华为交换机ssh思科交换机_华为交换机 ssh 配置(极简版)
- Java 产生随机数:Java 中产生随机数的方法及应用汇总
- 前端js-angluar定时刷新器
- 60佳优秀的国外电子商务网站设计案例(上篇)
- bootstrap交互式网页设计工具_3款强大的BootStrap的可视化制作工具推荐
- 单片机 MSP430 G2553 F5529 蜂鸣器 音乐 音乐播放器
- 【HTML5】创造一款成功HTML5游戏的完整指南
- 【OpenCV】 车牌识别检测
- DELL戴尔开启/关闭触摸板方法
- mp3转wav方法,mp3转wav步骤
- 如何在云服务器上部署程序
- DirectX11入门篇
- php加减法计算器程序,用php简单实现加减乘除计算器
- java版我的世界有溺尸_我的世界如何刷溺尸_minecraft溺尸陷阱制作教程 - 我的世界中文站...
- 关于interrupt(),interrupted(),isInterrupted()用法分析