系统设计要求:

(1)可以输入用户名和密码

(2)密码要密文显示

(3)输错三次要锁定对应的用户

首先,我们来完成要求1,设计一个可以输入用户名和密码的界面,输入正确或错误进行提示。

_username = "Fisher"

_password = "goodluck"

username = input("username:")

password = input("password:")

if _username == username and _password == password:

print("Welcome user {name} login...".format(name = username))

else:

print("Invalid username or password !")

然后,我们来完成密码输入的密文显示动作,这里用到了getpass库:

(1)这里需要import getpass库,然后通过getpass.getpass()来实现密文显示密码的动作;

(2)这个库还有另外一个函数getpass.getuser(),是用来读取系统用户名的,无输入参数;

(3)这个库必须在CMD模式下才能完整运行,否则会有无法密文或无法运行的问题;

import getpass

#系统自带用户名

_username = "Fisher"

_password = "goodluck"

username = input("username:")

password = getpass.getpass()

print(username,password)

if _username == username and _password == password:

print("Welcome user {name} login...".format(name = username))

else:

print("Invalid username or password !")

最后,我们要实现对输入错误三次的用户进行锁定操作,需要用到文件操作。

设计思路:

(1)有一个默认的用户名、密码列表文件,用于结果校验;

(2)输入错误三次的行为识别;

(3)对输入三次的用户进行锁定,每次输入用户名后先检查当前账户是否被锁定,锁定用户名被记录到文件中,无论程序是否退出均有效;

关键点:

(1)在文件中怎样分别读取不同用户的用户名和密码

(2)set、dict的查找、比较方法

import getpass

#从文件中读取所有用户名、密码到字典中

f_user_list_path = open(r"D:\python\homework\userlist.txt",'r')

f_user_blacklist_path = open(r"D:\python\homework\blacklist.txt",'r')

while True:

Registed_user = f_user_list_path.readline()

#读取用户名和密码到字典里

#去除用户名和密码里的非法的字符,比如:空格、换行,使用strip()

Registed_user = Registed_user.strip(" ")

Registed_user = Registed_user.strip("\n")

Registed_password = f_user_list_path.readline()

Registed_password = Registed_password.strip(" ")

Registed_password = Registed_password.strip("\n")

d_alluser = dict.fromkeys(Registed_user,Registed_password)

print(d_alluser)

if Registed_password == ''or Registed_user == '':

break

#关闭文件

f_user_list_path.close()

#读取黑名单列表到set中

s_blacklist = set()

while True:

blacklist_user = f_user_blacklist_path.readline()

#读取用户名和密码到字典里

#去除用户名和密码里的非法的字符,比如:空格、换行,使用strip()

blacklist_user = blacklist_user.strip(" ")

blacklist_user = blacklist_user.strip("\n")

blacklist_user = blacklist_user.strip("")

if blacklist_user != '':

s_blacklist.add(blacklist_user)

else:

print(blacklist_user,s_blacklist)

break

#关闭文件

f_user_blacklist_path.close()

#用户名密码登录

count = 0

while count < 10:

#用户名密码登录

username = input("Please input your username:")

#检查用户是否被锁定,如果没有锁定则可以输入密码,否则进行锁定提示

#Set查询方法待确定

#    print("This is your name:",username,"Blacklist is:", s_blacklist)

#    if s_blacklist.isdisjoint(username) != True:

#        print("您输入的错误次数太多,已禁止访问",username,s_blacklist)

#    continue

password = getpass.getpass()

#用户名密码合法性检查

#Dict查询方法待确定

print(d_alluser,d_alluser.get(username))

if d_alluser.get(username) == password:

print("Welcome user {name} login...")

else:

print("Invalid username or password !")

count = count + 1

python发牌代码十点半_深夜十点半(一)——我的第一个Python程序“登录系统”...相关推荐

  1. python刷抖音浏览_告别刷抖音!30秒一个Python小例子,总有一款适合你

    小编每天上班坐地铁,不是刷抖音就是煲电视剧,不是我不想学习,主要是短视频太好看了,30秒一个,刷刷刷的不停啊.如果Python也有30秒学习的小例子,我也一定会看呢. 于是小编收录整理了一些30秒一个 ...

  2. 设计一个分步式登录系统_分布式系统:何时构建它们以及如何扩展。 分步指南。

    设计一个分步式登录系统 It always strikes me how many junior developers are suffering from impostor syndrome whe ...

  3. python能不能互动执行_细思恐极,插上U盘就开始执行Python代码

    原标题:细思恐极,插上U盘就开始执行Python代码 昨天在上厕所的时候突发奇想,当你把usb插进去的时候,能不能自动执行usb上的程序.查了一下,发现只有windows上可以,具体的大家也可以搜索( ...

  4. mybatis代码自动生成器_最近很火的文章自动生成器,python源码公开了(内附python代码)

    学了python,但是又不知道可以用来干嘛.开发一个计算器?太low了.开发一个网站?感觉网站涉及太多知识点,一个人搞不定.不用慌,本文介绍一个最近很火的一个文章自动生成器,它是用python写的,能 ...

  5. python运行代码不成功_命令行执行python模块时提示包找不到的问题

    庄稼人不是专职python开发的道友,虽然与python相识已多年,可惜相识不相知,只是偶尔借助pydev写一些简单的小工具. 多年来,一直困惑于这样一个问题:同样的工程,同样的代码,使用pydev可 ...

  6. python输入代码如何清除_如何清空python

    执行python命令会进入Python控制台.在Python控制台中可以用交互的方式执行Python语句.也就是执行一行Python语句,会立刻返回执行结果. 当Python控制台输入过多的Pytho ...

  7. python数据分析要学多久_如何七周成为数据分析师18:Python的新手教程

    本文是<如何七周成为数据分析师>的第十八篇教程,如果想要了解写作初衷,可以先行阅读七周指南.温馨提示:如果您已经熟悉Python,大可不必再看这篇文章,或只挑选部分. Python是近年来 ...

  8. python怎么用大数据分析师_如何七周成为数据分析师18:Python的新手教程

    本文是<怎样 七周成为数据剖析 师>的第十八篇教程,假定 想要了解 写作初衷,能够 先行阅读七周指南.温馨提示:假定 您曾经 熟习 Python,大可不用 再看这篇文章,或只选择 部分 . ...

  9. python什么是入口文件_小问题大隐患:如何正确设置 Python 项目的入口文件?

    有一位同学提到了 Python 找不到模块的问题: 问题涉及到的代码结构和代码截图如下: 这个问题的解决方法非常简单,就是把start.py文件从bin文件夹移出来就好了. 但如果对这个问题进一步分析 ...

最新文章

  1. java redis 主从 哨兵_Redis主从复制与哨兵机制
  2. seaborn系列 (14) | 条形图barplot()
  3. 通过代码来调用log4net写日志
  4. 给你们讲讲我自己是怎么学习Linux系统的
  5. Python 中的万能之王 Lambda 函数
  6. C字符数组赋值(转)
  7. 首款搭载鸿蒙os的设备,华为发布会配件汇总,首款搭载 鸿蒙OS 的设备来了
  8. python spark hadoop_使用Scala或Python列出存储在Hadoop HDFS上的Spark群集中可用的所有文件?...
  9. Hbase shell练习题
  10. 拓端tecdat|用R语言模拟随机服务排队系统
  11. composer 安装php endroid/qrcode二维码应用,二维码里面添加logo
  12. Java //PP1.3 编写一个程序,分行显示你的名字、生日、爱好、最喜欢的书及最喜欢的电影。
  13. 解决 required a bean of type ‘com.aliyun.oss.OSSClient‘ that could not be found
  14. Java IDEA的使用
  15. “我只警告一次,下次我会直接忽略你发的垃圾,懂?”Linus 精彩炮轰语录集锦...
  16. 计算机网络---数据链路层PPP协议
  17. Android 集成 Agora SDK 快速体验 RTC 版多人视频聊天|掘金技术征文
  18. java项目:批量修改文件名字
  19. 淘宝小部件在 2021 双十一中的规模化应用
  20. 分析Ajax请求并抓取今日头条街拍美图

热门文章

  1. 无人机视频与GIS融合三维实景怎么实现?
  2. Pycharm激活方式
  3. AIOps智能运维学习资料汇总
  4. 川大972 | 《管理信息系统》考研知识点(含第七版更新)
  5. 白盒测试、黑盒测试、灰盒测试
  6. 上证上市数据可视化分析展示
  7. 一文带你深入了解linux驱动
  8. ajax是宏任务还是微任务,JavaScript的宏任务和微任务
  9. 海量用户实时互动直播架构探索
  10. 央视赋能,强势出击——方圆出海与《品牌中国》栏目达成战略合作