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,但是光是看书看视频学习,总是觉得掌握的不够扎实.所以就决定自己去写写爬虫,当带着目的性去学,也许更容易发现自己需要什么.这是酝酿多 ...
随机推荐
- Linux服务器配置之加载硬盘
Linux服务器配置之加载硬盘 1.修改密码 passwd 2.测试密码是否成功 3.查看硬盘信息 fdisk –l 4.格式化分区 fdisk /dev/vdb 5.查看分区 6.快速格式化/dev ...
- iOS-C基础
iOS开发系列--C语言之基础知识 概览 当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(i ...
- iOS-网络处理
1.iOS-网络基础 2.iOS-网络处理框架AFN 3.iOS-网络爬虫
- KnockoutJS 3.X API 第七章 其他技术(6) 使用“fn”添加自定义函数
有时,您可能会通过向Knockout的核心值类型添加新功能来寻找机会来简化您的代码. 您可以在以下任何类型中定义自定义函数: 因为继承,如果你附加一个函数到ko.subscribable,它将可用于所 ...
- 元素绝对定位以后设置了高宽,a标签不能点击的原因总结
元素绝对定位以后设置了高宽,a标签不能点击的原因: 1.元素内并无内容 2.背景是透明的,无任何背景图或者颜色 解决方法: 1.如果不是绝对定位元素的,可以用相对定位 2.给元素加透明的背景图 3.I ...
- VS中行号对齐的辅助线(虚线)去除
3张图 2 3
- sizzle分析记录:getAttribute和getAttributeNode
部分IE游览器下无法通过getAttribute取值? <form name="aaron"> <input type="text" name ...
- MVC4做网站后台:用户管理 ——用户组补充
上次做完发现存在点问题. 1.是类型显示的为数字(如下图): 2.是不能根据类型进行查询. 首先做查询.easyui-datagrid可以添加toolbar. 在datagrid的data-optio ...
- iOS开发之抽屉效果实现
说道抽屉效果在iOS中比较有名的第三方类库就是PPRevealSideViewController.一说到第三方类库就自然而然的想到我们的CocoaPods,今天的博客中用CocoaPods引入PPR ...
- Linux随笔之——./configure、make、make install(转)
原文连接:http://www.linuxidc.com/Linux/2011-02/32211.htm 这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./con ...