python学习-day2_课堂作业

news/2024/12/3 2:26:52/

需求:编写一个购物车程序

  1. 启动,输入工资多少
  2. 打印商品列表
  3. 根据商品代码购买商品
  4. 每次购买后检测余额,够继续买,不够提示余额不足
  5. 可退出,退出时打印购物单和余额信息
#Author:Peng Huang
product_list = [('iphone',5888),('Mac Pro',13888),                          #商品列表使用列表嵌套('starbucks',37),('Black tea',30)
]
shopping_list = []                               #设置一个空的购物列表
salary = input("请输入你的工资:")
if salary.isdigit():                             #检测输入是否为数字,如果是数字,数字为整形salary = int(salary)while True:                                 #如果上述为真,循环执行下面代码,直到有break或者exit退出循环for item in product_list:                #循环打印列表,并打印索引,以索引为商品序列号print(product_list.index(item),item)
#       for index,item in enumerate(product_item):     使用enumerate方法打印列表索引和列表元素
#           print(index,item)choose_item = input("请输入你想购买的物品序列号:")if choose_item.isdigit():choose_item = int(choose_item)if choose_item < len(product_list) and choose_item >= 0:     #判断输入的商品序列号在数组索引范围内product_item = product_list[choose_item]                  #将列表中的元素传给变量if product_item[1] <= salary:                             #商品价格小于工资shopping_list.append(product_item)                    #将选的商品添加到购物单salary -= product_item[1]print("已购买\033[42;1m%s\033[0m,您的余额还有:\033[31;1m%s\033[0m" % (product_item[0],salary))     #色彩格式高亮显示\033[31;1m%s\033[0m 31是红色 32是绿色  41是红底色 42是绿底色else:print("您的余额已不足,您的余额还有:\033[31;1m%s\033[0m" % salary)else:print("你所够买的商品不存在。")elif choose_item == 'q' or choose_item == 'Q':                  #当输入Q或者q退出,打印购物单和余额print("-----购物清单-----")for i in shopping_list:print(i)print("您的余额还有:\033[31;1m%s\033[0m" % salary)exit()else:print("你所够买的商品不存在。")
else:print("你的输入工资有误,退出。")

 

转载于:https://www.cnblogs.com/William-hp/p/9287949.html


http://www.ppmy.cn/news/614399.html

相关文章

matlab立方体投影,那些投影到三维的高维立方体,后来都怎么样了?(浅度好文)...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼function hypercube( N, a, b, c)%N为立方体维数,N不小于3% a为投影方式&#xff0c;b为是否画面&#xff0c;c为是否旋转%取值 1 点投影 画平面 旋转%取值 0 平行投影 不画平面 不旋转%-----------------------------------------…

hdu2006 求奇数的乘积【C++】

求奇数的乘积 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 114710 Accepted Submission(s): 69944 Problem Description给你n个整数&#xff0c;求他们中所有奇数的乘积。Input输入数据包含多个测试实例&…

使用Streamlit和Matplotlib创建交互式折线图

大家好&#xff0c;本文将介绍使用Streamlit和Matplotlib创建一个用户友好的数据可视化Web应用程序。该应用程序允许上传CSV文件&#xff0c;并为任何选定列生成折线图。 构建Streamlit应用程序 在本文中&#xff0c;我们将指导完成创建此应用程序的步骤。无论你是专家还是刚刚…

React从入门到实战-事件处理,受控组件与非受控组件

事件处理 通过onXxx属性指定事件处理函数&#xff08;注意大小写&#xff09; React使用的是自定义&#xff08;合成&#xff09;事件&#xff0c;而不是使用的原生DOM事件——为了更好的兼容性React中的事件是通过事件委托方式处理的&#xff08;委托给组件最外层的元素——为…

摄像头ISP系统原理(上)

摄像头ISP系统原理&#xff08;上&#xff09; ISP(Image Signal Processor)&#xff0c;即图像信号处理器&#xff0c;用于处理图像信号传感器输出的图像信号。它在相机系统中占有核心主导的地位&#xff0c;是构成相机的重要设备。 主要内部构成 如下图所示&#xff0c;IS…

Mysql中tinyint型长度1,[MySQL] mysql int(1) tinyint(1)有什么区别

mysql int(1) tinyint(1)有什么区别?我指定了字段长度,类型还有意义吗?Reply:mysql 中int(1)和tinyint(1)中的1只是指定显示长度&#xff0c;并不表示存储长度&#xff0c;只有字段指定zerofill是有用如int(3)&#xff0c;如果实际值是2&#xff0c;如果列指定了zerofill&…

【剑指offer】14、剪绳子

题目 给一根长度为n的绳子&#xff0c;请把绳子剪成m段(m,n都是整数且1)&#xff0c;每段绳子的长度相乘最大乘积是多少&#xff1f;如绳子长度为8&#xff0c;当分别为2&#xff0c;3&#xff0c;3时&#xff0c;此时最大乘积18 思路1 此问题明显包含独立的子问题&#xff0c;…

pygame是python的一个库吗,python学习pygame,,基本库导入impor

python学习pygame&#xff0c;,基本库导入impor基本库导入import pygameimport sysfrom pygame.locals import *初始化pygame.init()窗口标题pygame.display.set_caption("初次见面多多关照")窗口显示设置screen pygame.display.set_mode(size, RESIZABLE)resizable…