要求:

用户名(_username): Python

用户密码(_passwd): python123

用户收到提示后分别输入用户名和密码,如果输入错误则返回:Invalid username or passwd. 连续输入三次不正确即退出程序,并给用户返回:you couldn't try it anymore.

分析:

1、定义用户名和用户密码,之后才能调用比对;

_username = 'Python'

_passwd = 'python123'

2、用户输入需要在提示下键入,则要用到输入功能,可以用input()函数,里面可以提示:Please type your ID, Please type your password。

username = input('Please type your ID: ')

passwd = input('Please type your password: ')

3、用户输入后需要让电脑比对输入信息与真实信息,可以用if语句或者while语句,如果条件为真则打印一条消息告诉用户可以进去:Welcome %s login the system!否则给用户返回:Invalid username or passwd.

利用if语句:

if username == _username and passwd == _passwd: #用户名和密码同时满足时才能进入系统

print('Welcome %s login the system!' % _username)

else:

print("Invalid username or passwd.")

代码到这里好像大功告成,但是运行后发现只运行了一次就停止了,要求是要三次,而代码中并没有相关的信息。因此如何设置三次呢,可以用到range()函数,利用range()函数可以打印任意区间的数值,就像这样:

>>>for i in range (1,4):

>>> print (i)

1

2

3

这里的数字123不仅可以代表数字,还可以代表任何代码块中要做的事情,其实质就是做了一件事,起名叫1,做了另一件事叫2……。因此可以把用户名与密码比对的事件当做一次事件处理。可以这样:

for i in range (1,4):

username = input('Please type your ID: ')

passwd = input('Please type your password: ')

if username == _username and passwd == _passwd: #用户名和密码同时满足时才能进入系统

print('Welcome %s login the system!' % _username)

else:

print("Invalid username or passwd.")

这样做总可以了吧,试一试,三次退出没问题了,又有了新的问题!

Please type your ID:

Please type your password:

Invalid username or passwd.

Please type your ID:

Please type your password:

Invalid username or passwd.

Please type your ID: Pyth

Please type your password: python123

Invalid username or passwd.

为什么在要退出时没有显示:You couldn't try it anymore! 要求是三次错误之后显示。

观察发现在for代码块中代码没有问题,都是一行一行解释编译出来的。题目要求是结束三次输入之后再显示You couldn't try it anymore!。因此,问题不在for之中,而是缺少了一个选择条件,即else语句,for与else同级因此缩进量相同。

for i in range (1,4):

username = input('Please type your ID: ')

passwd = input('Please type your password: ')

if username == _username and passwd == _passwd: #用户名和密码同时满足时才能进入系统

print('Welcome %s login the system!' % _username)

else:

print("Invalid username or passwd.")

else:

print("You couldn't try it anymore!")

解决了上面一个问题又来了另一个问题,不论怎么输入,程序都会执行三次后才能停止。一块分析一下,在for代码块中我们发现并没有一种退出机制,输错信息后直接跳转到了else语句,那有没有办法在执行完for语句后,如果输入符合条件就停止循环呢。这里就可以用到break语句来终止代码运行,加上试试。

if username == _username and passwd == _passwd:

print('Welcome %s login the system!' % _username)

break #break for过后,就不会执行最后面的else语句

大功告成,终于可以顺利运行了。

python用户名密码_Python编写密码登录程序相关推荐

  1. python编写木马攻击_Python编写简易木马程序

    Python编写简易木马程序 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 + ...

  2. python用字典编写购物程序_Python编写购物小程序

    购物车要求: 用户名和密码存放于文件中 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够 ...

  3. 初学python-练习_4使用python编写本地登录程序(带注册)

    源代码: #!/usr/bin/python #-*- coding:UTF-8 -*- #set chinese code #设置相关值 NAME_MAX = 8; #名称长度限制 AUTOGRAP ...

  4. 用python做一个木马_Python编写简易木马程序

    light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Subli ...

  5. python用一行代码编写一个回声程序_Python源码分析2 - 一个简单的Python程序的执行...

    本文主要通过跟踪一个非常简单的Python程序的执行,简单讨论Python实现的基本框架和结构. 要执行Python程序如下,功能非常简单:从1加到10再打印出来 # test program sum ...

  6. python如何屏幕截图_Python编写屏幕截图程序方法

    正在编写的程序用的很多Windows下的操作,查了很多资料.看到剪切板的操作时,想起以前想要做的一个小程序,当时也没做,现在正好顺手写完. 功能:按printscreen键进行截图的时候,数据保存在剪 ...

  7. python discuz验证码_python实现自动登录discuz论坛

    最近被公司的事情搞的很纠结,博客也有段时间没写了,不过最近还是忙里偷闲做了点其他事情,在这里记录下来,和大家分享一下. 需求也比较简单,老婆是做社区运营的,所以需要每天把几个帖子定时的顶上来,手工做很 ...

  8. 雷电模拟器python编程接口_python:编写登陆接口(day 1)

    作业要求: 输入用户名,密码 认证成功显示欢迎信息 输入错误三次后锁定用户 Readme 1.user_id.txt是存放用户id及密码的文件 2.user_lock.txt是存放被锁定的用户id的文 ...

  9. python 排列组合_python 编写排列组合

    python在编写排列组合是会用到 itertools 模块 排列 import itertools mylist= list(itertools.permutations(['A','B','C', ...

最新文章

  1. Sass函数:Sass Maps的函数-map-has-key($map,$key)
  2. pandas使用isna函数和any函数计算返回dataframe中包含缺失值的数据行(rows with missing values in dataframe)
  3. Linux(Centos6.5)用户名密码
  4. 渗透测试靶机搭建_对vulnhub中Android4靶机渗透测试全过程!
  5. 红茶一杯话Binder(ServiceManager篇)
  6. 「Ubuntu」仓库 “https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal Release” 没有 Release 文件。
  7. 漫谈数据库索引 | 脚印 footprint(转载)
  8. 2021宿州市地区高考成绩排名查询,2021年宿州市所有的高中排名,宿州市高中高考成绩排名出炉...
  9. java怎么获取该项目系统的参数_Java 获取系统参数
  10. 改不改,这是一个问题
  11. 管理刀片服务器的KVM切换器
  12. 安卓阵营最强Soc!骁龙898即将亮相:小米12系列本月底前后首发
  13. virtualxposed使用教程_VirtualXposed
  14. 任务管理器被管理员禁用如何解决
  15. 旭日X3派,从零到TogetherRos的快速体验
  16. solidwork 侵权 证据_企业常见版权侵权问题咨询总结
  17. ECHO、IF、REM等命令介绍
  18. 异端的制作:数字人物Gawain
  19. 如何将照片格式转换jpg?
  20. 用 Appium 自动收取蚂蚁森林能量

热门文章

  1. 企业ERP项目实施,遇见问题与心得分享
  2. threejs-相机
  3. 【零信任落地案例】深信服山东港口集团零信任多数据中心安全接入
  4. 看到了这篇文章,不怕你学不会字符串函数!!!!!
  5. [免费专栏] Android安全之Android APP应用程序的汉化功能 (修改so中的字符串内容)
  6. Excel 2010 VBA 入门 105 将工作表数据批量导出为图片
  7. makemigrations 和 migrate区分
  8. Android Button 属性详解
  9. 【产品售前】PPT设计之道
  10. 整数加扰 c语言,基于地址加扰的嵌入式系统安全防护研究