2022年 11月 4日

Python实现简单的购物车

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

  1. # 购物车
  2. # 商品名称作为key,商品数量作为value
  3. shoppingcar = {}
  4. # 添加商品
  5. def addgoods(product, num):
  6. if num.isdigit(): # isdigit()如果字符串只包含数字则返回 True 否则返回 False。
  7. num = int(num)
  8. # 判断key是否存在
  9. if product not in shoppingcar:
  10. # 添加键值对
  11. shoppingcar[product] = num
  12. else:
  13. # 修改指定键的值
  14. shoppingcar[product] += num
  15. print("商品添加成功")
  16. else:
  17. print("数量输入有误")
  18. # 删除商品
  19. def delgoods(name, num):
  20. product = 0
  21. for key in shoppingcar:
  22. if key[0] == name:
  23. product = key
  24. if num.isdigit():
  25. num = int(num)
  26. if num >= shoppingcar[product]:
  27. for product in shoppingcar:
  28. if product[0] == name:
  29. # 删除该商品的全部
  30. shoppingcar.pop(product)
  31. else:
  32. # 删除该商品指定的数量【修改value值】
  33. shoppingcar[product] -= num
  34. print("商品删除成功")
  35. else:
  36. print("数量输入有误")
  37. if __name__ == '__main__':
  38. print("**********欢迎进入自选超市**********")
  39. # 引导用户输入金额
  40. saving = input("请输入你的金额:")
  41. if saving.isdigit():
  42. saving = int(saving)
  43. while True:
  44. print("可以进行的操作如下:\n "
  45. "0.添加商品 1.删除商品 2.结算购物车 3.退出超市")
  46. # 引导用户选择操作
  47. choice = input("请输入你需要进行的操作:")
  48. # 判断用户选择的序号
  49. if choice in ["0", "1", "2", "3"]:
  50. if choice == '0':
  51. # 添加
  52. # 存储商品的列表
  53. product_list = [
  54. ('book', 88),
  55. ('iphone', 8888),
  56. ('food', 100),
  57. ('kindle', 500),
  58. ('computer', 7000)
  59. ]
  60. # 展示商品内容
  61. print("本商店的商品如下:")
  62. for i, goods in enumerate(product_list):
  63. print("%d:%s" % (i, goods))
  64. # 引导用户选择商品
  65. index = input("请输入你需要购买的商品编号:")
  66. if index.isdigit():
  67. index = int(index)
  68. if 0 <= index <= len(product_list) - 1:
  69. # 获取商品
  70. product = product_list[index]
  71. # 引导用户输入商品数量
  72. num = input("请输入需要购买的%s的数量:" % (product[0]))
  73. if int(num) * product[1] > saving:
  74. print("金额不足,请充值")
  75. saving += int(input("请输入需要充值的金额:"))
  76. print("充值成功,余额为:%d" % saving)
  77. else:
  78. # 减去商品价格
  79. saving -= int(num) * product[1]
  80. # 将商品添加到购物车
  81. addgoods(product, num)
  82. else:
  83. print("商品的编号输入有误")
  84. elif choice == '1':
  85. # 删除
  86. name = input("请输入需要删除的商品名称:")
  87. num = input("请输入需要删除的商品的数量:")
  88. for product in shoppingcar:
  89. if product[0] == name:
  90. # 添加金额
  91. saving += int(num) * product[1]
  92. delgoods(name, num)
  93. elif choice == '2':
  94. # 结算购物车
  95. print("----------你已经购买了如下商品----------")
  96. for key,value in shoppingcar.items():
  97. print("%s:%s"%(key,value))
  98. # 清空购物车
  99. shoppingcar.clear()
  100. print("你还剩余%d元" % saving)
  101. else:
  102. # 退出
  103. print("欢迎再次光临")
  104. break
  105. else:
  106. print("暂未开通此功能")
  107. else:
  108. print("金额输入有误,请重新输入")

测试运行结果:

  1. **********欢迎进入自选超市**********
  2. 请输入你的金额:10000
  3. 可以进行的操作如下:
  4. 0.添加商品 1.删除商品 2.结算购物车 3.退出超市
  5. 请输入你需要进行的操作:0
  6. 本商店的商品如下:
  7. 0:('book', 88)
  8. 1:('iphone', 8888)
  9. 2:('food', 100)
  10. 3:('kindle', 500)
  11. 4:('computer', 7000)
  12. 请输入你需要购买的商品编号:2
  13. 请输入需要购买的food的数量:50
  14. 商品添加成功
  15. 可以进行的操作如下:
  16. 0.添加商品 1.删除商品 2.结算购物车 3.退出超市
  17. 请输入你需要进行的操作:1
  18. 请输入需要删除的商品名称:food
  19. 请输入需要删除的商品的数量:20
  20. 商品删除成功
  21. 可以进行的操作如下:
  22. 0.添加商品 1.删除商品 2.结算购物车 3.退出超市
  23. 请输入你需要进行的操作:2
  24. ----------你已经购买了如下商品----------
  25. ('food', 100):30
  26. 你还剩余7000
  27. 可以进行的操作如下:
  28. 0.添加商品 1.删除商品 2.结算购物车 3.退出超市
  29. 请输入你需要进行的操作:3
  30. 欢迎再次光临