作业需求:

用户入口:

1.商品信息存在文件里

2.已购商品,余额记录。第一次启动程序时需要记录工资,第二次启动程序时谈出上次余额

3.允许用户根据商品编号购买商品

4.用户选择商品后,检测是否够,够就直接扣款,不够就提醒

5.可随时退出,退出时,打印移购买商品和余额
    
    商家入口:

1.可以添加商品,修改商品价格1. 运行程序输出第一级菜单

1)编写思路

编写思路参考下面GitHub链接中的流程图

https://github.com/KongChan1988/51CTO-Treasure/blob/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day02/HomeWork/%E8%B4%AD%E7%89%A9%E8%BD%A6%E6%B5%81%E7%A8%8B%E5%9B%BE.jpg

2)具体实现

买家入口

  1. #-*- Coding:utf-8 -*-
  2. # Author: D.Gray
  3. '''
  4. 购物车需求
  5. 用户入口:
  6. 1.商品信息存在文件里
  7. 2.已购商品,余额记录。第一次启动程序时需要记录工资,第二次启动程序时谈出上次余额
  8. 3.允许用户根据商品编号购买商品
  9. 4.用户选择商品后,检测是否够,够就直接扣款,不够就提醒
  10. 5.可随时退出,退出时,打印移购买商品和余额
  11. 商家入口:
  12. 1.可以添加商品,修改商品价格
  13. '''
  14. import os,sys
  15.  
  16. def user_shoping(): #定义一个用户购买商品操作函数
  17. while True:
  18. user_salary = input('请输入您的充值金额>>>:')
  19. if user_salary.isdigit(): #判断充值金额是否为数字
  20. user_salary = int(user_salary)
  21. user_shop_file.write(login_name + '\t')
  22. user_shop_file.write(str(user_salary) + '\n')
  23. for item in porduct_lists: #循环遍历商品列表
  24. print(porduct_lists.index(item), item) #使用index方法打印列表序号,item为列表元素
  25. p_index = porduct_lists.index(item) #定义p_index方法存储列表序号
  26. while True:
  27. user_choises = input('请选择您所需购买的商品编号>>>:退出请按:Q:')
  28. if user_choises.isdigit(): #判断用户输入的商品编号是否为数字
  29. user_choises = int(user_choises)
  30. if user_choises <= p_index and user_choises >= 0: #用户输入编号小于列表序号
  31. p_item = porduct_lists[user_choises] #定义p_item方法获取用户选择的商品
  32. p_item[1] = int(p_item[1]) #将商品金额强制转换为int类型
  33. if user_salary >= p_item[1]: #判断用户金额是否买得起商品
  34. shop_lists.append(p_item) #将已购买的商品信息存储到shop_lists列表中
  35. user_salary -= p_item[1] #扣除商品金额=还剩余额
  36. user_shop_file.write(login_name + '\t')
  37. user_shop_file.write(str(user_salary) + '\n') #将用户信息和余额信息写入user_shop文本中
  38. print("商品 \033[32;1m%s\033[0m 已加入购物车...您还剩\033[32;1m%s\033[0m余额" % (p_item[0], user_salary))
  39. else:
  40. print('\033[31;1m对不起您的金额不足,请去充值!\033[0m')
  41. print('已购商品清单'.center(30, '*'))
  42. print(shop_lists)
  43. sys.exit()
  44. else:
  45. print('\033[31;1m请输入范围内商品编号\033[0m')
  46. elif user_choises == 'q' or user_choises == 'Q':
  47. print('已购商品清单'.center(30, '*'))
  48. print(shop_lists)
  49. sys.exit()
  50. else:
  51. print('\033[31;1m请输入有效商品编号\033[0m')
  52. else:
  53. print('\033[31;1m请输入有效充值金额\033[0m')
  54. def user_top(): #定义一个用户充值操作函数
  55. while True:
  56. user_salary = input('请输入您的充值金额>>>:')
  57. if user_salary.isdigit():
  58. user_salary = int(user_salary)
  59. user_salary += int(shop[-1]) #用户现有余额=充值金额+上次还剩余额
  60. user_shop_file.write(shop[0] + '\t')
  61. user_shop_file.write(str(user_salary)+'\n') #将用户名和现有余额(充值完成后还剩余额)写入user_shop文本中
  62. print('您当前余额为:\033[32;1m%s\033[0m'%user_salary)
  63. for item in porduct_lists:
  64. print(porduct_lists.index(item), item)
  65. p_index = porduct_lists.index(item)
  66. while True:
  67. user_choises = input('请选择您所需购买的商品编号>>>:退出请按:Q:')
  68. if user_choises.isdigit():
  69. user_choises = int(user_choises)
  70. if user_choises <= p_index and user_choises >= 0:
  71. p_item = porduct_lists[user_choises]
  72. if user_salary >= int(p_item[1]):
  73. shop_lists.append(p_item)
  74. user_salary -= int(p_item[1])
  75. user_shop_file.write(shop[0] + '\t')
  76. user_shop_file.write(str(user_salary) + '\n')
  77. print("商品 \033[32;1m%s\033[0m 已加入购物车...您还剩\033[32;1m%s\033[0m余额" % (p_item[0], user_salary))
  78. else:
  79. print('\033[31;1m对不起您的金额不足,请去充值!\033[0m')
  80. print('已购商品清单'.center(30, '*'))
  81. print(shop_lists)
  82. sys.exit()
  83. else:
  84. print('\033[31;1m请输入范围内商品编号\033[0m')
  85. elif user_choises == 'q' or user_choises == 'Q':
  86. print('已购商品清单'.center(30, '*'))
  87. print(shop_lists)
  88. sys.exit()
  89. else:
  90. print('\033[31;1m请输入有效商品编号\033[0m')
  91. else:
  92. print('\033[31;1m请输入有效充值金额\033[0m')
  93. def porduct_shop(): #定义一个读取porduct_shop(商品信息文本)函数
  94. user_porduct_file = open('porduct_shop', 'r+', encoding='utf-8')
  95. user_porduct_lists = user_porduct_file.readlines() #以列表形式读取porduct_shop商品信息文本内容
  96. for user_porduct_list in user_porduct_lists: #循环遍历user_porduct_lists列表
  97. porduct_lists.append(user_porduct_list.split()) #将读取内容存储到porduct_lists商品列表中
  98.  
  99. login_name = ''
  100. shop_lists = []
  101. porduct_lists = []
  102.  
  103. porduct_shop() #调用porduct_shop(读取卖家商品信息)操作函数
  104.  
  105. user_shop_file = open('user_shop','r+')
  106. user_shop_lists = user_shop_file.readlines()
  107. for user_shop_list in user_shop_lists: #循环遍历user_shop(用户信息及余额)文本内容
  108. shop = user_shop_list.split()
  109. if len(user_shop_lists) == 0: #判断user_shop文本信息内容是否为空
  110. login_name = input('请输入用户名>>>:') #如果为空,则判断为首次登陆,需要填写用户名和密码
  111. user_info_file = open('user_info','r+')
  112. user_info_lists = user_info_file.readlines()
  113. for user_info_list in user_info_lists: #循环遍历user_info(用户信息:用户名和密码)文本内容
  114. user = user_info_list.split()
  115. if login_name in user: #判断输入的用户名是否存在
  116. while True:
  117. login_pwd = input('请输入密码>>>:') #判断用户输入密码是否正确
  118. if login_pwd == user[1]:
  119. print('欢迎 \033[33;1m%s\033[0m 登录英雄联盟收银台' % login_name) #登陆成功
  120. user_shoping() #调用user_shopping用户购买商品操作函数
  121. else:
  122. print('\033[31;1m密码错误请重新输入密码\033[0m')
  123. else:
  124. sys.exit('\033[31;1m用户名不存在\033[31;1m')
  125. else: #用户不是首次登陆操作
  126. print('欢迎 \033[33;1m%s\033[0m 登录英雄联盟收银台,您的余额还剩\033[32;1m%s\033[0m元' % (shop[0], shop[-1]))
  127. user_top() #调用 user_top(用户第二次登陆和充值操作)函数

卖家入口

  1. # -*- coding:utf-8 -*-
  2. # Author:D.Gray
  3.  
  4. seller_shop = open('porduct_shop','a',encoding='utf-8')
  5. seller_shop.write('小学生皮肤'+'\t') #卖家添加商品名称
  6. seller_shop.write('' + '\n') #卖家添加商品价格信息
  7. seller_shop.flush()

3)Github笔记

第二周的笔记的地址是:

https://github.com/KongChan1988/51CTO-Treasure/tree/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day02/Practice%20Notes

4)Readme.md文档

https://github.com/KongChan1988/51CTO-Treasure/blob/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day02/HomeWork/readme.md

老男孩Day2作业:购物车程序的更多相关文章

  1. 老男孩python作业4-ATM程序开发

    实现一个ATM + 购物商城程序: 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款 ...

  2. Python培训12期-day2作业-购物车

    #!/usr/bin/env python import sys import os import getpass 商品={ '图书': { "<Puppet实战>": ...

  3. python基础day2作业:购物车

    #功能:1.可注册账号2.登录买家账号3.可查询编辑购物车里商品4.可以余额充值5.可提示余额不足6.购物车结算 #使用:1.第一次使用先注册账号填写账号金额2.账号金额信息保存在buyer_acco ...

  4. Python初学者第十二天 购物车程序小作业

    12day 作业题目: 购物车程序 作业需求: 数据结构: goods = [ {"name": "电脑", "price": 1999}, ...

  5. 老男孩python作业2-购物车程序

    购物车程序要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 ...

  6. python3.x Day2 购物车程序练习

    购物车程序: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4. ...

  7. python第七天-作业[购物车]

    作业要示: 购物车程序:启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出 ...

  8. Python学习-购物车程序

    程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...

  9. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

随机推荐

  1. AWS + Stunnel + Squid ***

    [需求] 第一,能***. 第二,在企业网络要能突破端口限制. [原理] 利用AWS提供的一年免费EC2服务,搭建一台自己的VPS,在VPS中利用Stunnel与本机建立加密连接,将本地http请求通 ...

  2. 使用Asset Pipeline管理rails生产环境静态资源实现步骤

    1.    修改项目中指向静态资源文件的链接 a)     访问静态资源文件 <%= stylesheet_link_tag "application", media: &q ...

  3. django的settings.py设置static

    DEBUG = True ################ STATICFILES ################ # A list of locations of additional stati ...

  4. xcopy 命令行

    https://www.cnblogs.com/yang-hao/p/6003308.html xcopy-参数详解   XCOPY——目录复制命令  1.功能:复制指定的目录和目录下的所有文件连同目 ...

  5. UIView显示原理和过程

    一.UIView显示原理         一个控件,UIView之所以可以显示,是因为内部在UIView的内部有一个layer属性作为根图层,根图层上可以放其他子图层,在UIView中所有能够看到的内 ...

  6. pl/sql使用部分整理

    在工作中使用pl/sql工具,总结一下常用操作,以便以后复习,也希望帮助朋友们熟悉pl/sql操作! 1.pl/sql记住登录密码PL/SQL Developer->tools->Pref ...

  7. spring整合web项目演示

  8. css3(border-radius)边框圆角详解(转)

    css3(border-radius)边框圆角详解 (2014-05-19 16:16:29) 转载▼ 标签: divcss html it css3 分类: 网页技术 传统的圆角生成方案,必须使用多 ...

  9. Codeforces 1077(F1+F2) DP 单调队列

    题意:给你一个n个元素的数组,从中选取x个元素,并且要保证任意的m个位置中必须至少有一个元素被选中,问选中元素的和最大可以是多少? F1 n,m,x到200 F2 n,m,x到5000. 思路1:设d ...

  10. 使用HttpClient进行Get通信

    --------------siwuxie095                             首先到 Apache官网 下载相关的库文件     Apache官网:http://www.a ...