当前位置: 首页 > news >正文

Python 学习笔记【10】练习:购物车程序

  程序:购物车程序

  需求:

    1、启动程序后,让用户输入工资,然后打印商品列表

      2、允许用户根据商品编号购买商品

    3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 

      4、可随时退出,退出时,打印已购买商品和余额

 1 product_list = [  # 创建商品列表
 2     ('iPhone', 5800),
 3     ('Mac Pro', 9800),
 4     ('Bike', 800),
 5     ('Watch', 10600),
 6     ('Coffee', 31),
 7     ('Book Python', 120),
 8 ]
 9 shopping_list = []  # 创建购物列表
10 salary = input("Input you salary:")  # 输入工资
11 
12 if salary.isdigit():  # 如果薪水输入正确
13     salary = int(salary)  # 转换为整数型
14     while True:  # 循环选购商品
15         for index, item in enumerate(product_list):   # 打印产品列表
16             print(index, item)
17         user_choice = input("选择你要购买的商品:")  # 获取信息选择要买的商品还是退出
18         if user_choice.isdigit():  # 如果输入的是数字
19             user_choice = int(user_choice)
20             if user_choice < len(product_list) and user_choice >= 0:  # 如果 0<= 数字 <6
21                 p_item = product_list[user_choice]  # 获取对应产品
22                 if p_item[1] <= salary:  # 如果买得起
23                     shopping_list.append(p_item)  # 添加入购物列表
24                     salary -= p_item[1]  # 计算余额
25                     # 显示购买商品及余额
26                     print("Added %s into shopping cart, your current balance is \033[31;1m%s\033[0m" % (p_item, salary))
27                 else:
28                     print("\033[41;1m你的余额只剩[%s].\033[0m" % salary)
29             else:  # 如果非 0<= 数字 <6
30                 print("product code [%s] is not exist!" % user_choice)
31         elif user_choice == 'q':  # 如果输入的是Q
32             print("----------Shopping List----------")
33             for p in shopping_list:
34                 print(p)
35             print("You current balance", salary)
36             exit()
37         else:
38             print("Invalid option")  # 如果不是数字也不是Q
39 else:  # 如果薪水输入错误
40     print("薪水输入错误,录入为:\033[31;1m%s\033[0m" % salary)
41     exit()

 

转载于:https://www.cnblogs.com/a1-code/p/6006996.html

相关文章:

  • CSS3实现元素旋转
  • WebApi获取请求url主机
  • role=, .sr-only 的作用
  • Underscore 整体架构浅析
  • BizTalk 2013R2 WCF-LOB Oracle Adapter安装配置/问题解决方法
  • 关于AWS的备份策略
  • Objective-C三方库: ZXEasyCoding
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • JSON字符串转对象
  • iOS开发笔记--导航栏解决方案(透明、隐藏)
  • 投票系统之防止重复投票
  • python redis使用心得
  • Tools - Markdown
  • 深入理解ajax系列第一篇——XHR对象
  • 如果图片链接找不到地址出错自动显示默认图片(头像)
  • 网络传输文件的问题
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • docker-consul
  • Effective Java 笔记(一)
  • HTTP中GET与POST的区别 99%的错误认识
  • React-flux杂记
  • Vue 动态创建 component
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 动态魔术使用DBMS_SQL
  • 力扣(LeetCode)21
  • 配置 PM2 实现代码自动发布
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 日剧·日综资源集合(建议收藏)
  • 源码安装memcached和php memcache扩展
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • #include
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .Net Web窗口页属性
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET中 MVC 工厂模式浅析
  • @GlobalLock注解作用与原理解析
  • [BUUCTF]-Reverse:reverse3解析
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入HBASE