Python-S13作业-day1-之登陆程序
Python-S13-day1
需求:
1.让用户输入账号密码,账号密码正确,登陆程序,打印欢迎信息;
2.如果账号,或密码输入错误,提示用户重新输入,用户有三次机会;
3.如果用户第三次输入的账号或者密码还是不正确,就把第三次输入的账号锁定。
主程序:
#!/usr/bin/python env
#_*_coding:utf-8 _*_
userfile1='userfile'
lockfile1='lockfile'
userfile=open(userfile1,'r+')
lockfile=open(lockfile1,'r+') login_flag = False
#设置一个标志位,用于判断用户是否登陆成功;
for i in range(3):
username=input("username:")
for lockuser in lockfile.readlines():
lockuser = lockuser.split()
#把被锁定的账号,转换成一个列表;
if username in lockuser:
#判断账号是否在锁定列表中,如果在,就退出;
exit("%s user is lock"%username)
password = input("password:")
for line in userfile.readlines():
line = line.split()
#把允许登陆的用户名,密码转换成列表;
user = line[0]
#把登陆账号赋值给user
passwd = line[1]
#把登陆密码赋值给passwd
if user == username and passwd == password:
#判断账号,密码是否正确,如果正确,登陆并打印欢迎信息;
exit("welcomto login.")
login_flag = True
#标志位,判断用户是否登陆成功;
if login_flag == False:
print("user or passwd error.")
else:
print("%s user is lock."%username)
lockfile.write("\t%s"%username)
lockfile.close()
#循环三次后,用户还没有登陆成功,就把账号锁定;
Readme:
1.这个程序一共三个文件:userfile存放登陆账号,密码的文件;
lockfile存放被锁定的账号;
login.py登陆主程序;
流程图:
思路二(功能全部实现):
#!/usr/bin/python env
#_*_coding:utf-8 _*_
user = open('db','r+')
lock = open('db1','r+')
mark = False
for i in range(3):
username = input("input user name:")
for line in lock.readlines():
line = line.split("|")
if username in line:
exit("user is lock.")
passwd = input("input you password.")
for pwd in user.readlines():
pwd = pwd.split("|")
if pwd[0] == username and pwd[1].strip("\n") == passwd:
exit("welcoto login.")
else:
print('user or passwd error.')
else:
print("%s user is lock"%username)
lockuser = open('db1','a')
lockuser.write("|"+"%s"%username)
lockuser.close() * lockuser.txt
0||1|11
*loginuser.txt
admin|123
freddy|123
思路三(函数写法):
#用户输入三次,密码不正确,锁定账号,功能没有实现; def register(user,pwd):
reg = open('db','a')
reg.write("\n" + user + "|" + pwd )
reg.close() def login (user,pwd):
lockuser = open('db1','r')
for line in lockuser.readlines():
line = line.split("|")
if user in line:
exit("user is lock.")
userpwd = open('db','r')
for logpwd in userpwd:
logpwd = logpwd.split("|")
if user == logpwd[0] and pwd == logpwd[1].strip("\n"):
exit("welcome to login")
else:
print("user or password error")
input_num = input("input y or n.")
if input_num == 'y':
main()
else:
exit() def main():
choice = input("1.register. 2.login.")
if choice == '':
username = input("username:")
password = input("password:")
register(username,password)
elif choice == '':
username = input("username:")
password = input("password:")
login(username,password)
main()
Python-S13作业-day1-之登陆程序的更多相关文章
- Python作业之三次登陆锁定用户
作业之三次登陆锁定用户 作业要求如下: 1. 输入用户名和密码 2. 认证成功提示欢迎信息 3. 认证失败三次锁定用户 具体代码如下: 方法1: import os#导入os模块 if os.path ...
- 用python 实现录入学生作业情况的小程序
写一个录入学生作业情况的一个程序 1.查看学生作业情况 2.录入学生作业情况 3.可以让输入3次,需要为空的情况 homeworks = { ‘张流量’: {‘2018.3.22’:”未交”,’201 ...
- Python之路,Day1 - Python基础1
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- Python之路,Day1 - Python基础1(转载Alex)
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- Python之路,Day1 - Python基础1 --转自金角大王
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- python之路-Day1
Python 是一门什么样的语言? python是一门动态解释性的强类型定义语言 动态语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量 ...
- 小白的Python之路 day1
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van ...
- 小白的Python之路 day1 变量
Python之路,Day1 - Python基础1 变量 变量用于存储在计算机程序中引用和操作的信息.它们还提供了一种用描述性名称标记数据的方法,这样我们的程序就能更清晰地被读者和我们自己理解.将变量 ...
- Python之旅Day1 数据类型初识(数字|字符串|列表|数据运算) 编码 表达式(if...else|for|while)
初识PYTHON Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(吉多·范罗苏姆)于 ...
随机推荐
- CKEditor实现图片上传
本人用的CKEditor版本为4.3 CKEditor配置和部署参考CKEditor4.x部署和配置. CKEditor编辑器的工具栏中初始的时候应该是这样子的,没有图片上传按钮 并且预览中有一堆火星 ...
- imread() not working in OpenCV 2.4.11 Debug mode
The OpenCV function imread() not working in OpenCV 2.4.11 Debug mode of VS2010 under Win32, the way ...
- php 配置正确的时间
关于php时区时间错误问题 date 当前时间 时差 当地 本地date_default_timezone_set 之前有一个遗留问题,就是echo date("y-m-d h:i:s&qu ...
- 服务器文件系统一定要用NTFS格式。
网络中心通过ADSL接入Internet(固定的IP地址), 网站服务通过端口映射放到了内网的两台计算机上,一台IP地址为122.9.6.1,提供Web.FTP.POP3与SMTP服务:另一台IP地址 ...
- 细说LastLogonTimeStamp
微软在Windows Server 2003中引入了LastLogonTimeStamp属性.管理员们可以利用这个属性查看用户或者计算机最近是否登录过域.根据这些信息,管理员可以对长时间没有登录的账户 ...
- 小组项目alpha发布的评价
新蜂团队一直都特别努力,这节课我也看到了他们努力的结果--项目可以顺利运行,在两个同学试玩期间没有出现BUG,不知道玩游戏的同学的心情,反正我们在台下看得很开心的. 飞天小女警组的礼物挑选系统,是一个 ...
- jQuery组件系列:封装标签页(Tabs)
我自己封装的组件,你也行,静态链接地址 http://www.cnblogs.com/leee/p/5190489.html 声明.最好,先把代码拷过去运行一下,其实特别丑~再往下看 我没优化,因为我 ...
- Apache Storm技术实战之2 -- BasicDRPCTopology
欢迎转载,转载请注明出处,徽沪一郎. 本文通过BasicDRPCTopology的实例来分析DRPCTopology在提交的时候, Topology中究竟含有哪些内容? BasicDRPCTopolo ...
- twitter storm源码走读之1 -- nimbus启动场景分析
欢迎转载,转载时请注明作者徽沪一郎及出处,谢谢. 本文详细介绍了twitter storm中的nimbus节点的启动场景,分析nimbus是如何一步步实现定义于storm.thrift中的servic ...
- Ubuntu下配置C/C++开发环境
在 Ubuntu 下配置 C/C++ 开发环境 转自:白巴的临时空间 Submitted by 白巴 on 2009-04-27 19:52:12. 学习笔记 虽然 Ubuntu 的版本已经是9.04 ...