思路:
    1.引导用户输入金额
    2.引导用户选择商品
    3.根据用户的选择将商品添加到购物车
    4.删除商品
    5.结算购物车,退出系统

# 购物车
# 商品名称作为key,商品数量作为value
shoppingcar = {}# 添加商品
def addgoods(product, num):if num.isdigit():  # isdigit()如果字符串只包含数字则返回 True 否则返回 False。num = int(num)# 判断key是否存在if product not in shoppingcar:# 添加键值对shoppingcar[product] = numelse:# 修改指定键的值shoppingcar[product] += numprint("商品添加成功")else:print("数量输入有误")# 删除商品
def delgoods(name, num):product = 0for key in shoppingcar:if key[0] == name:product = keyif num.isdigit():num = int(num)if num >= shoppingcar[product]:for product in shoppingcar:if product[0] == name:# 删除该商品的全部shoppingcar.pop(product)else:# 删除该商品指定的数量【修改value值】shoppingcar[product] -= numprint("商品删除成功")else:print("数量输入有误")if __name__ == '__main__':print("**********欢迎进入自选超市**********")# 引导用户输入金额saving = input("请输入你的金额:")if saving.isdigit():saving = int(saving)while True:print("可以进行的操作如下:\n ""0.添加商品  1.删除商品  2.结算购物车  3.退出超市")# 引导用户选择操作choice = input("请输入你需要进行的操作:")# 判断用户选择的序号if choice in ["0", "1", "2", "3"]:if choice == '0':# 添加# 存储商品的列表product_list = [('book', 88),('iphone', 8888),('food', 100),('kindle', 500),('computer', 7000)]# 展示商品内容print("本商店的商品如下:")for i, goods in enumerate(product_list):print("%d:%s" % (i, goods))# 引导用户选择商品index = input("请输入你需要购买的商品编号:")if index.isdigit():index = int(index)if 0 <= index <= len(product_list) - 1:# 获取商品product = product_list[index]# 引导用户输入商品数量num = input("请输入需要购买的%s的数量:" % (product[0]))if int(num) * product[1] > saving:print("金额不足,请充值")saving += int(input("请输入需要充值的金额:"))print("充值成功,余额为:%d" % saving)else:# 减去商品价格saving -= int(num) * product[1]# 将商品添加到购物车addgoods(product, num)else:print("商品的编号输入有误")elif choice == '1':# 删除name = input("请输入需要删除的商品名称:")num = input("请输入需要删除的商品的数量:")for product in shoppingcar:if product[0] == name:# 添加金额saving += int(num) * product[1]delgoods(name, num)elif choice == '2':# 结算购物车print("----------你已经购买了如下商品----------")for key,value in shoppingcar.items():print("%s:%s"%(key,value))# 清空购物车shoppingcar.clear()print("你还剩余%d元" % saving)else:# 退出print("欢迎再次光临")breakelse:print("暂未开通此功能")else:print("金额输入有误,请重新输入")

测试运行结果:

**********欢迎进入自选超市**********
请输入你的金额:10000
可以进行的操作如下:0.添加商品  1.删除商品  2.结算购物车  3.退出超市
请输入你需要进行的操作:0
本商店的商品如下:
0:('book', 88)
1:('iphone', 8888)
2:('food', 100)
3:('kindle', 500)
4:('computer', 7000)
请输入你需要购买的商品编号:2
请输入需要购买的food的数量:50
商品添加成功
可以进行的操作如下:0.添加商品  1.删除商品  2.结算购物车  3.退出超市
请输入你需要进行的操作:1
请输入需要删除的商品名称:food
请输入需要删除的商品的数量:20
商品删除成功
可以进行的操作如下:0.添加商品  1.删除商品  2.结算购物车  3.退出超市
请输入你需要进行的操作:2
----------你已经购买了如下商品----------
('food', 100):30
你还剩余7000元
可以进行的操作如下:0.添加商品  1.删除商品  2.结算购物车  3.退出超市
请输入你需要进行的操作:3
欢迎再次光临

Python实现简单的购物车相关推荐

  1. python购物车代码_python简单商城购物车实例代码

    本文为大家分享一个简单商城购物车的python代码,供大家参考,具体内容如下 要求: 1.写一段商城程购物车序的代码 2.用列表把商城的商品清单存储下来,存到列表 shopping_mail 3.购物 ...

  2. python实现简单的情感分析

    python实现简单的情感分析 1 数据导入及预处理 1.1 数据导入 # 数据导入 import pandas as pd data = pd.read_csv('../data/京东评论数据.cs ...

  3. 很多都是python很简单吗,但是要如何才能入门python并精通呢?

    1,python怎么学 一般来说,Python几个月应该是可以入门了.如果你几个月还没有入门,一定是方法不对,要么就是偷懒了.我在公众号里面有一篇文章详细写过 '初学者上来不要学爬虫',爬虫虽然非常有 ...

  4. 教你如何运用python实现简单文件读写函数

    这篇文章主要为大家详细介绍了python实现简单文件读写函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 python作为脚本性语言,加上它的简便易用性.会经常当作脚 ...

  5. python matplotlib 简单用法

    python matplotlib 简单用法 具体内容请参考官网 代码 import matplotlib.pyplot as plt import numpy as np # 支持中文 plt.rc ...

  6. 用Python实现简单的人脸识别,10分钟(附源码)

    前言 今天,我们用Python实现简单的人脸识别技术! Python里,简单的人脸识别有很多种方法可以实现,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的.这里介绍的是准确 ...

  7. python做好的程序如何变成小程序-使用python编写简单的小程序编译成exe跑在win10上...

    每天的工作其实很无聊,早知道应该去IT公司闯荡的.最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅. 人的精力毕竟是有限的,所以 ...

  8. python编程例子 输入 输出-推荐 :手把手教你用Python创建简单的神经网络(附代码)...

    原标题:推荐 :手把手教你用Python创建简单的神经网络(附代码) 作者:Michael J.Garbade:翻译:陈之炎:校对:丁楠雅 本文共2000字,9分钟. 本文将为你演示如何创建一个神经网 ...

  9. python爬虫简单实例-Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站"http://bbs.51tes ...

最新文章

  1. 摄像头定位:ICCV2019论文解析
  2. 在java中将数据信息写入本地文本(1)
  3. centos mysql下载64位_CentOS7 64位安装mysql教程
  4. Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法
  5. FFmpeg图像处理深度应用
  6. Prototype 框架分析(一)
  7. tcp java实例_实现了基于TCP的Java Socket编程实例代码
  8. C#基础加强(8)之委托和事件
  9. mysql 字段a减字段b_SQL 数据库 如何实现第一行字段A减字段B得到值C,然后再用C减去第二行字段B,以此类推,求高手解答...
  10. 黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(2)
  11. hp DV4 声卡驱动 IDT声卡补丁1.1
  12. 标准数独游戏-深搜解法
  13. Mac如何创建快捷方式?
  14. 【阶段一】菜学21.11
  15. 根据我的经验如何进行数据科学,人工智能或大数据工作
  16. Windwos 搭建TFTP
  17. 我的Android进阶之旅------gt;/storage/sdcard0, /sdcard, /mnt/sdcard ,/storage/emulated/legacy 的区别...
  18. 自己写的uvc驱动支持IP2977/ip2970
  19. postgresql设置自动更新时间方法
  20. 用4种方法完成计算机的关闭,在Win10中的4种自动关闭的方法 | MOS86

热门文章

  1. webflux webclient DataBufferLimitException: Exceeded limit on max bytes to buffer
  2. spring boot中使用@Async失效
  3. Vue——请求转发配置解决方案
  4. java intern_java String的intern方法
  5. 【学习笔记】springboot中的全局异常处理 和@ControllerAdvice的使用
  6. JavaScript基础11-day13【正则表达式(量词、语法、转义字符、元字符)、DOM(节点、事件)、图片切换】
  7. 高性能mysql整理
  8. 深入浅出理解锁之—— AbstractQueuedSynchronizer
  9. IDEA中SpringBoot中使用单元测试Junit方法
  10. 数据映射--平衡二叉有序树