博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python练习_购物车(简版)
阅读量:5113 次
发布时间:2019-06-13

本文共 4022 字,大约阅读时间需要 13 分钟。

 python练习_购物车(简版)

需求:

  1. 写一个python购物车可以输入用户初始化金额
  2. 可以打印商品,且用户输入编号,即可购买商品
  3. 购物时计算用户余额,是否可以购买物品
  4. 退出结算时打印购物小票

 

以下代码实现的功能与思路:

功能: 

  (1)预算金额控制,只能输入大于0的数字

  (2)商品格式化打印
  (3)选择完成要买的商品后,提示用户再次确认,确认后开始计算用户余额是否大于等于商品价格,价格正确后则加入购物车
  (4)输入q则进行结算,结算时将重复的商品进行合并,显示个数,并计算消费总额和余额

思路:

  (1)商品打印通过嵌套列表实现

  (2)购买商品是只需要比较用户余额和商品价格即可,如果比商品金额打就把这个商品加入到一个列表中

  (3)结算时计算用户购物车列表即可

 

流程图:

 

使用方法:

  执行环境:Python3.5

  执行方法,执行执行即可

代码:

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3  4 import time 5  6 List_items = [ ["iPhone4",100],["iPhone5",200],["iPhone6",300],["iPhone7",4000],["Python",10000],] 7 User_shopping_cart = [] 8  9 def in_money():10     '''11     判断用户输入金额的函数12     '''13     global user_in_money14     while True:15         user_in_money = input("Please enter initial funds:").strip()16         if user_in_money.isdigit():17             if int(user_in_money) > 0:18                 while True:19                     print_lists()20             else:21                 print("\033[31mInput Error!\033[0m")22         else:23             print("\033[31mInput Error!\033[0m")24 25 def print_lists():26     '''27     获取用户输入的编号,调用结算模块28     :return:29     '''30     print("Product List".center(40,"-"))31     Spaces = " "*232     for Product_info in List_items:33         Underlined = 20-len(Product_info[0])34         print(Spaces,List_items.index(Product_info)+1,Spaces,Product_info[0],"."*Underlined,Product_info[1])35     print("-"*40)36 37     in_Numbering = input("Please enter the product number,[q]exit billing:").strip()38     if in_Numbering.isdigit():39         if int(in_Numbering) > 0 and int(in_Numbering)<= len(List_items):40             Transaction_Calculations(in_Numbering)41         else:42             print("\033[31mThe item number does not exist!\033[0m")43     else:44         if in_Numbering == "q":45             settlement()46         else:47             print("\033[31mInput Error!\033[0m")48 49 def Transaction_Calculations(Numbering):50     '''51     加入购物车模块,判断用户余额是否足够购买商品52     '''53     global user_in_money54     user_in_money = int(user_in_money)55     Numbering = int(Numbering)56     Pu_confirmation = input("Product \033[32m%s\033[0m Whether to add to cart(y/n):"%List_items[Numbering-1][0]).strip()57     if Pu_confirmation == "y":58             if user_in_money >= List_items[Numbering-1][1]:59                 User_shopping_cart.append(List_items[Numbering-1])60                 user_in_money = user_in_money - List_items[Numbering-1][1]61                 print("Product %s Added Cart, Current Balance %s¥"%( List_items[Numbering-1][0],user_in_money))62             else:63                 print("The balance is insufficient, the commodity price \033[31m%s\033[0m¥,lacks \033[31m%s\033[0m¥"%(List_items[Numbering-1][1],List_items[Numbering-1][1]-user_in_money))64     else:65         print("\033[31mNot added to cart\033[0m")66 67 def settlement():68     '''69     结算模块70     '''71     if len(User_shopping_cart) == 0:72         print("Shopping Cart There are no products, thank you patronage goodbye")73         exit()74     else:75         print("Shopping list".center(50,"-"))76         consumption = 077         new_user = []78         [new_user.append(i) for i in User_shopping_cart if not i in new_user]79         for user_cart in new_user:80             number = User_shopping_cart.count(user_cart)81             settlement_un = 15-len(user_cart[0])82             to_settlement_un = 25 - settlement_un - len(str(user_cart[1])) - len(user_cart[0])83             consumption += user_cart[1]*number84             print(" "*5,user_cart[0],"."*settlement_un,user_cart[1],"¥","."*to_settlement_un,"%s个"%(number))85         times = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))86         print(times.center(50,"-"))87         print("Shopping cost \033[32m%s\033[0m¥, Current balance \033[32m%s\033[0m¥,Thank you to patronize!".center(50,"-")%(consumption,user_in_money))88         exit()89 90 if __name__ == "__main__":91     in_money()
购物车

 

转载于:https://www.cnblogs.com/bj-xy/p/6322160.html

你可能感兴趣的文章
集群tomcat+apache配置文档
查看>>
VMware Tools安装
查看>>
2019.04.09 电商20 购物车的展示
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
zoj 2286 Sum of Divisors
查看>>
OO5~7次作业总结
查看>>
如何判断主机是大端还是小端(字节序)
查看>>
Centos7 日志查看工具
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
BZOJ2459 : [BeiJing2011]神秘好人
查看>>
Django入门示例之被解放的姜戈——01 初试天涯(安装及启动)
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
python7 数据类型的相互转化 字符编码
查看>>
Android 画图之 Matrix(一)
查看>>
React Native - 2 控件Flexbox
查看>>
前缀和
查看>>
Jquery插件汇集:
查看>>
Linux 启动、关闭、重启网络服务的两种方式
查看>>
List<T>列表通用过滤模块设计
查看>>