'''有bug未及时调整

登出函数有问题'''

importjsonimporttimedefinit_info():

user_if={"egon":{"password":"123",'status':False,'timeout':0},"alex":{"password":"456",'status':False,'timeout':0},

}

with open('user_info','w',encoding='utf-8') as f:

json.dump(user_if,f)defread_info():

with open('user_info','r+',encoding='utf-8') as f:print(json.load(f,encoding = 'utf-8'))

user_name= ''

classUser:defdb(self):'''db方法:调用时打印当前用户信息和信息存储数据格式

:return:'''with open('user_info', 'r+', encoding='utf-8') as f:

user_info= json.load(f, encoding='utf-8')for k, v inuser_info.items():print('username:%s -' %k, type(k),'password:',[val for val in v.values()][0], type([val for val inv.values()][0]),'status:',[val for val in v.values()][1], type([val for val in v.values()][1]),'timeout:', [val for val in v.values()][2], type([val for val in v.values()][2]),

)deflogin(self):'''登录

登录成功将状态(status)修改为True

密码输入错误三次将设置锁定时间(下次登录如果和当前时间比较大于10秒即不允许登录)[个人理解应该是10秒内不能登录,这里的表述有问题]

:return:'''count=0while count < 3:

username= input('请输入用户名>>>').strip()

password= input('请输入密码>>>').strip()

with open('user_info', 'r+', encoding='utf-8') as f:

user_info= json.load(f, encoding='utf-8')

user_name_list=[]for k inuser_info.keys():

user_name_list.append(k)if username in user_name_list and password == user_info.get(username)['password']:if user_info.get(username)['timeout'] - time.time()<0:

user_info.get(username)['status'] =Trueprint('用户:%s 登陆成功' %username)

user_dict={username:user_info.get(username)}

user_name=username

with open('user_info','w+',encoding='utf-8') as f:

json.dump(user_info, f)returnuser_dict[username]else:return '用户账号已锁定!'

elif count == 2:if username inuser_name_list:

user_info.get(username)['timeout'] = time.time()+10with open('user_info','w+',encoding='utf-8') as f:

json.dump(user_info, f)return '%s账户已锁定'%usernameelse:return '用户名不存在!'

else:print('账号或密码错误,还有%s次尝试机会'% (3-(count+1)))

count+= 1

deflogout(self):'''退出将状态修改为False(退出要判断是否处于登录状态)

:return:'''with open('user_info', 'r+', encoding='utf-8') as f:

user_info= json.load(f, encoding='utf-8')

user_list=[]for k inuser_info.keys():

user_list.append(k)if user_name inuser_list:print('当前登录账户%s'%user_name)

choice= input('请确认是否退出,是:Y 否:N').strip()if choice == 'y'.upper() or choice == 'y'.lower():

user_info.get(user_name)['status'] =False

with open('user_info', 'w+', encoding='utf-8') as f:

json.dump(user_info, f)else:pass

else:passus=User()#us.db()

u = us.login()

路飞学城python电子书闲鱼_路飞学城Python-Day21(practise)相关推荐

  1. 开店必看!带你用Python分析闲鱼的爆款商品

    开店必看!带你用Python分析闲鱼的爆款商品 分享 Python 自动化及爬虫.数据分析实战干货,欢迎关注. 1 目 标 场 景 经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能,都能为他们带 ...

  2. python写闲鱼脚本_自动化篇 | 你想要的闲鱼日常操作,Python 给你实现了

    1 目 标 场 景 前篇文章讲了如何在 iOS 端使用 Airtest 实现自动化的操作,本篇将继续带大家做 iOS 端的自动化项目. 如果你经常用闲鱼,应该每天都要进行下面操作,App 签到.鱼塘签 ...

  3. python写闲鱼脚本_你想要的闲鱼日常操作,Python 给你实现了

    1 目 标 场 景 前篇文章讲了如何在 iOS 端使用 Airtest 实现自动化的操作,本篇将继续带大家做 iOS 端的自动化项目. 如果你经常用闲鱼,应该每天都要进行下面操作,App 签到.鱼塘签 ...

  4. python写闲鱼脚本_自动化篇 - 躺着收钱!闲鱼自动发货机器人来啦~

    1 目 标 场 景 闲鱼上,很多卖家选择在平台上卖虚拟商品,大部分虚拟商品的交易方式都是通过网盘链接来完成交易. 在很多时候,商品被买家拍下并付款后,都需要一段时间的等待,一直到卖家看到消息后才能完成 ...

  5. python 使用socks 爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  6. python tkinter火柴人_趣学Python编程

    <趣学Python编程> 第1部分 学习编程 第1章 Python不是大蟒蛇 3 1.1 关于计算机语言 3 1.2 安装Python 4 1.2.1 在Windows 7上安装Pytho ...

  7. python画circos图_从零开始学CIRCOS绘制圈图(四)

    从零开始学CIRCOS绘制圈图(一) 从零开始学CIRCOS绘制圈图(二) 从零开始学CIRCOS绘制圈图(三) 通常circos的中间部分不是空白区域,会用一条条线进行连接,表示两个染色体部分区域有 ...

  8. python内建函数有哪些_享学课堂浅谈Python序列内建函数都有哪些

    python的内建函数和库函数的区别是什么?人在得不到的时候,什么都可以不介意.得到之后,什么都有点介意. python.什么是内建函数? python.什么是内建函数?新手小白自学python.不懂 ...

  9. 专科毕业学习python有前途吗_专科生学IT有前途吗?

    常听人讲"上不了本科以后就只有受苦的份"."自考本科也没用,本科生一抓一大把"之类的言论,就算是学当下最火热的计算机专业.入行薪资最高的互联网行业,也无济于事, ...

最新文章

  1. ECEF rectangular coordinate system(ECEF直角坐标系)
  2. python replace函数用法_Python实现的从右到左字符串替换方法示例
  3. 自定义Adapter中实现startActivityForResult的分析
  4. Android Stdio 插件谷歌兼容库Appcompat
  5. 程序的内存模型—内存四区—堆区
  6. 用Apache的HTACCESS保护密码
  7. Linux基金会:Linux已经战胜微软
  8. P3216-[HNOI2011]数学作业【矩阵乘法,数学】
  9. 【tool】企业级开源分布式文件服务器搭建(FastDFS)
  10. mycat定时向mysql存储数据_【实战演练】Linux操作系统20-MyCat实现Mysql数据库读写分离与自动切换...
  11. Basler和Matrox的配置及调试
  12. 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)...
  13. SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程
  14. SDUT 1953 Idol
  15. 在Windows 2003环境下配置 PHP 5.2.5 + Apache HTTP Server 2.2.8 + MySQL 6.0
  16. 三、实战小例程 基于STM32F103C8T6最小系统板和STM32CubeMX驱动WS2812B光立方
  17. 写给零基础入坑蓝桥杯的同学
  18. 转: 诺贝尔奖得主:东亚教育浪费了太多生命
  19. 自己对香港一卡通的总结
  20. 无线路由器如何建立ftp服务器,利用无线路由器建立FTP服务器

热门文章

  1. 张小娴经典语录100句(转自文学博客网)
  2. 数据分析项目(python):股票数据导入、计算上涨、计算下跌、收益计算、双均线策略
  3. 简单介绍一下谷粒商城这个项目。
  4. 简单实现有向无环图思路
  5. 《C语言及程序设计提高》网络课程主页
  6. 2020年嵌入式第十一届省赛真题解析
  7. 用漫画给IE6写墓志铭(转)
  8. 系统集成项目管理工程师:项目管理办公室PMO
  9. RMSE数值在什么范围比较好呢
  10. python iloc函数_如何使用python语言中pandas模块中的iloc方法