1 '''
 2 #作业二:请闭眼写出购物车程序
 3 goods = [
 4     {"name": "电脑", "price": 1999},
 5     {"name": "鼠标", "price": 10},
 6     {"name": "游艇", "price": 20},
 7     {"name": "美女", "price": 998},
 8 ]
 9 #需求:
10 用户名和密码存放于文件中,格式为:jack|123
11 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序
12 允许用户根据商品编号购买商品
13 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
14 可随时退出,退出时,打印已购买商品和余额
15
16 '''
17 shopping_car = []
18 flag = False
19 num = 1
20
21 while num < 4:
22     name = input("请输入用户名:")
23     password = int(input("请输入密码:"))
24     with open('msg.txt', encoding='utf-8') as f:
25         for line in f:
26             if name == line.split('|')[0] and password == int(line.split('|')[1]) :
27                 salary = int(input("请输入您的总资产:"))
28                 with open('goods.txt',encoding='utf-8') as g:
29                     i = 1
30                     goods = []
31                     for line in g:
32                         dic = eval(line)
33                         print('商品编号:',i , dic['name'],'----->',dic['price'])
34                         goods.append(dic)
35                         i += 1
36
37                     while True:
38                         num = input('选择商品序列号[按q 退出]:')
39                         if num != 'q':
40                             num = int(num)
41                             if goods[num - 1]['price'] < salary:
42                                 salary = salary - goods[num - 1]['price']
43                                 shopping_car.append(goods[num - 1]['name'])
44                             else:
45                                 print("你的余额不足,请充值")
46                                 salary = input('输入充值额度[按q 退出]:')
47                                 if salary == 'q':
48                                     break
49                                 else:
50                                     salary = int(salary)
51                                 continue
52
53                         else:
54                             print('谢谢惠顾')
55                             break
56                     print('你的余额:', salary)
57                     print('购买的商品:', shopping_car)
58
59                     flag = True
60                     break
61             elif num < 3:
62                 print("输入有误,请重新输入!")
63             elif num == 3:
64                 print("刷新重试")
65         if flag:
66             break
67     num += 1

msg.txt:   jack|123

goods.txt  
{"name": "电脑", "price": 1999}{"name": "鼠标", "price": 10}{"name": "游艇", "price": 20}{"name": "美女", "price": 998}

转载于:https://www.cnblogs.com/JerryZao/p/8660609.html

购物车程序二(模拟了用户登录,限次数三次)相关推荐

  1. 微信小程序之Github API用户登录认证的三种方式

    调用Github API时需要进行身份认证.Github建议并提供基于OAuth2的第三方认证. 一.使用github提供的第三方认证(最常用方法) 使用github提供的第三方认证,需要先注册0au ...

  2. 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我...

    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...

  3. 微信授权绑定手机号 java_微信小程序获取手机号授权用户登录功能

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无 ...

  4. php 微信小程序获取手机号_实例讲解微信小程序获取手机号授权用户登录功能...

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写.本文主要给大家分享微信小程序获取手机号授权用户登录功能,需要的朋友参考下吧, ...

  5. java实现微信、手机号登陆_微信小程序获取手机号授权用户登录功能

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPaDirIrkFhoneNumber这个组件通过button来 ...

  6. Python模拟一个用户登录系统

    题目:模拟一个用户登录系统,用户输入用户名和密码,输入正确即可进入系统 直接上代码: #模拟一个用户登录系统,用户输入用户名和密码,输入正确即可进入系统 d=['yao','123456']while ...

  7. linux服务器登录次数,Linux 服务器和Windows服务器 用户登录失败次数限制【互联网金融系统漏洞排查】...

    1.Linux服务器用户登录失败次数限制(使用pam模块实现) /etc/pam.d/sshd    (远程ssh) /etc/pam.d/login    (终端) 1.1.用户通过ssh登录失败次 ...

  8. sqlserver数据库限制用户登录失败次数

    gpedit.msc 设定 失败三次之后锁定30分钟,30分钟重置一次 使用数据库的账户登录测试 故意输错三次密码后,提示 解锁锁定的账户 ALTER LOGIN jason WITH PASSWOR ...

  9. Python基础-小程序练习(跳出多层循环,购物车,多级菜单,用户登录)

    一. 从第3层循环直接跳出所有循环 break_flag = False count = 0 while break_flag == False:print("-第一层")whil ...

最新文章

  1. 3D视觉创新应用(三维重建)竞赛作品系列——多楼层室内环境下的三维几何重建
  2. docker常用命令行集锦
  3. linux 基本命令学习笔记
  4. stateflow错误:Error in port widths or dimensions.
  5. 启明云端分享|ESP32/ESP8266 烧录器 USB-TTL转接板开发工具ESP-T01的使用教程,视频可参考B站
  6. 深度学习-人工神经网络概述
  7. SAP Cloud for Customer移动端应用SAP推荐的网络时延参数
  8. 《Effective Java》读书笔记 - 5.泛型
  9. ABP入门系列(21)——切换MySQL数据库
  10. UVA 558 SPFA 判断负环
  11. aix系统输入oracle命令,aix 简单的系统命令
  12. IDEA---Project下看不见项目目录
  13. MySQL练习题(经典50题)
  14. 以面试的方式了解消息中间件MQ与RabbitMQ
  15. 电脑一键重装系统按F几进u盘启动
  16. python画美图_Python爬虫下手,就得从高清美图开始!
  17. iOS测试工程师如何用xcode进行性能测试
  18. 项目1:Ego微商小程序
  19. 流畅的python 14章可迭代的对象、迭代器 和生成器
  20. 英国电信公布2016第一财季业绩财报 营收76亿美元

热门文章

  1. jmeter 高并发测试报告_Windows下JMeter分布式压测环境搭建
  2. python怎样清除csv中的数据_使用d清除CSV文件中的数据
  3. android 加载so 与内存的关系,Android动态调试so之dump内存数据
  4. python超时处理_Python如何实现让一个函数超时退出?
  5. spriteatlas 白屏的问题_Discuz白屏问题解决思路
  6. 台州银行笔试考什么_台州银行笔试题型招聘考试真题考什么
  7. sql avg和count_SQL sum(),count()和avg()函数
  8. c# 中代替指针的功能_C中的功能指针
  9. python日期时间_Python日期时间
  10. 2019年web前端全集_2019年最佳30+ Web工具