5、python第一天作业
作业一:编写登陆接口
1、输入用户名密码
2、认证成功后显示欢迎信息
3、输错三次后锁定
分析:
1、流程控制图

2、readme文件
需求:
1、用户登录
2、错误三次锁定
分析:
1、建立user_data.txt文件,含3个字段:name,password,lock(>3表示正常,3=<表示锁定)
2、用json模块把三个字段存成字典dict_data
3、代码
import json def login(user_data):
'''
:param user_data: 用户信息字典
:return: True 成功, False 不成功
'''
name = input("请输入用户名:")
if user_data.get(name): #用户名存在
num = user_data[name][1]
if num >= 3: #用户已被锁定
print("用户已被锁定!")
return False
else: #用户未被锁定
flag_pass = True
while flag:
password = input("请输入密码:")
if password == user_data[name][0]: #密码正确
flag_pass = False
return True
else: #密码错误
num += 1
if num >= 3: #密码错误3次
print("用户已被锁定!")
user_data[name][1] = num
with open("user_data.txt","w") as f:
json.dump(dict_data,f)
return False
else: #用户名不存在
print("用户名不存在,请重新输入!")
return False if __name__ == "__main__":
dict_data = {}
flag = True
with open("user_data.txt", "r") as f:
dict_data = json.load(f)
while flag:
if login(dict_data):
flag = False
print("welcome back!")
import os
import json if os.path.exists(r'C:\Users\huang\PycharmProjects\day1\sql.txt'):
# 存储账户密码文件存在
while True: # 用户输入名字和密码并去前后空格
user_name = input('input name:').strip()
user_pwd = input('input pwd:').strip() # 以读的方式打开文件并把读取到的数据转化为dict对象
with open('sql.txt', 'r') as f:
d = json.loads(f.read()) if d.get(user_name) and d[user_name][1] < 3:
# 用户名存在并错误次数小于3次(3次锁定)
if d[user_name][0] == user_pwd:
# 用户密码正确
print('welcome back!')
else:
# 用户密码不正确,错误次数+1并写入文件
print('user or pwd is worry!')
d[user_name][1] += 1
with open('sql.txt', 'w') as file:
df = json.dumps(d)
print(df)
file.write(df)
else:
# 用户名不存在或错误次数大等于3次(3次锁定)
if d.get(user_name):
# 用户名存在且错误次数大等于3次(3次锁定)
print('worry to many!')
else:
# 用户名不存在
print('user_name is not exists!')
else:
# 存储账户密码文件不存在
print('soft is error!')
5、python第一天作业的更多相关文章
- python第一天作业
作业需求 OK 开始动手了 作业要用到的知识点: python的文件操作 ####################################################3 开始了 1.先写一 ...
- 小甲鱼 python——第一课作业!
0: python是脚本语言把?虽然不是很清楚什么是脚本语言就是了.复制一下: 脚本语言(英语:Scripting language)是为了缩短传统的"编写.编译.链接.运行"( ...
- Python第一周作业
import turtle turtle.color('black','red') turtle.pensize(10) turtle.begin_fill() for i in range(5): ...
- python课程第一天作业1-模拟登录
第一周作业: 作业1:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 流程图: 代码:后来修改过一次: #!/usr/bin/env python # -*-conding:ut ...
- python第一周总结
这一周将开启学习python第一周,开始之前学过python但是没有学精,到现在基本快忘记了,只能记住大概什么样子了emmm 作业计算bmi 这周作业为计算bmi,小明身高1.75,体重80.5.请根 ...
- python基础 实战作业 ---Excel基本读写与数据处理
代码地址如下:http://www.demodashi.com/demo/11650.html 看完本篇需要: 10min 作业练习需要: 0.5h~3h(依练习者对python熟悉程度而定) 看完本 ...
- 【作业1.0】OO第一单元作业总结
OO第一单元作业已全部完成,为了使这一单元的作业能够收获更多一点,我回忆起我曾经在计算机组成课设中,经常我们会写一些实验报告,经常以此对实验内容反思总结.在我们开始下一单元的作业之前,我在此对OO第一 ...
- OO第一单元作业总结——表达式求导
OO第一单元作业总结 第一次作业 基于度量分析代码结构 基本算法 第一次作业是简单多项式导函数求解,不需要对输入数据的合法性进行判定, 基本思想是用 (coeff, expo)表示二元组 coeff* ...
- python第一站
python 第一站,豆瓣-美国末日评论小爬虫 最近学习python,但是光是看书看视频学习,总是觉得掌握的不够扎实.所以就决定自己去写写爬虫,当带着目的性去学,也许更容易发现自己需要什么.这是酝酿多 ...
随机推荐
- HTML中em与b等的区别
最近在学习HTML基本知识,看到b标签和strong还有em,都是表示强调目的的,那他们之间的区别是什么呢?总结如下: < b > < i > 是视觉要素(presentati ...
- 一次 Oracle 算出运算溢出问题 排查解决 (并非除数为零!)
前段时间 出现过这个问题,: 表中有一列为number类型 rec_recordlength (两个时间的间隔长度/秒) 部分数据 统计这个字段就会出现 "算出运算溢出" 错误,很 ...
- Entity Framework Core 1.1 Preview 1 简介
实体框架核心(EF Core)是Entity Framework的一个轻量级,可扩展和跨平台版本. 10月25日,Entity Framework Core 1.1 Preview 1发布了. 升级到 ...
- KnockoutJS 3.X API 第六章 组件(3) 组件绑定
组件绑定将指定的组件注入到元素中,并且可选地将参数传递给它. 本节目录 一个例子 API 组件生命周期 备注1:仅限模板组件 备注2:使用没有容器元素的组件 备注3:将标记传递给组件 处置和内存管理 ...
- Struts框架
Struts是最早的Java开源框架之一,它是MVC设计模式的一个优秀实现. Struts定义了通用的Controller(控制器),通过配置文件(通常是 Struts -config.xml) Ec ...
- 网站初步收工---www.dkill.net
今天10.30左右备案核审成功了,然后一天都在忙部署和一些其他的东西,中途也写了很多文档,遇到很多问题,直接琢磨了N久,暂时发了这么多教程,明天揭露阿里云的各种坑(先用winServer服务器,有时间 ...
- css3使用技巧:细线边框的3种不同的写法
一般的app边框描边的线都小于一像素,那么我就像往常一样直接描了1px的边框,虽然是1px可是结果和app里的描边完全不一样“粗了”,所以就在网找了一下看看有没有解决方法,可是找了一会没找到,那咋办, ...
- 【原创】开源Math.NET基础数学类库使用(07)常用的数学物理常数
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 1.前 ...
- Office 365常见问题解答(第一期)
前不久进行的一次网络调查中,有不少朋友反馈了一些对于Office 365的实际问题,这里集中地做一个解答,请大家参考 1. Office 365的UI样式是否有开源计划 据我所知已经开源了:https ...
- Objective-C中把数组中字典中的数据转换成URL
可能上面的标题有些拗口,学过PHP的小伙伴们都知道,PHP中的数组的下标是允许我们自定义的,PHP中的数组确切的说就是键值对.而在OC我们要用字典(Dictionary)来存储,当然了Java用的是M ...