使用python3简单完成购物过程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用python3简单完成购物过程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3508字,纯文字阅读大概需要6分钟。
内容图文
![使用python3简单完成购物过程](/upload/InfoBanner/zyjiaocheng/1179/39e7ca7390cc4ba48c1d68680b8d0101.jpg)
功能:
要求用户输入购物卡余额,打印购物清单
用户可以连续的购买商品,直至钱不够为止
退出时,打印用户已经购买的商品信息和剩余金额
本次技术要求:使用list, dict, function,class。不能使用数据库,下一个版本会使用Django完成类似功能
代码如下:
1 import sys 2 import copy 3 4 5 class Product: 6 def __init__ (self, pid, name, price, count): 7 self.pid = pid 8 self.name = name 9 self.price = price 10 self.count = count 11 12def__str__(self): 13return"id>>" + str(self.pid) + " \tname>>" + self.name+" \tprice>>" + str(self.price) + " \tcount>>" + str(self.count) 14 15 16class ProductList: 17# 输入列表,抓成以id为key的字典,便于以后查找 18def__init__(self, products=[]): 19 self.prod_list = dict() 20for product in products: 21 self.prod_list[product.pid] = product 22 23def minus(self, productId, num): 24if productId in self.prod_list: 25if self.prod_list[productId].count > num: 26 self.prod_list[productId].count -= num 27return True 28elif self.prod_list[productId].count == num: 29 self.prod_list.pop(productId) 30return True 31else: 32print("库存不够,请重新选择数量") 33return False 34else: 35print("本仓库没有此件商品,请重新选择") 36 37def add(self, product, num=1): 38if product.pid in self.prod_list: 39 self.prod_list[product.pid].count += num 40else: 41 new_product = copy.deepcopy(product) 42 new_product.count = num 43 self.prod_list[new_product.pid] = new_product 44 45def print_all_product(self): 46for key in self.prod_list: 47print(self.prod_list[key]) 48 49 50class Shopping: 51 @classmethod 52def get_salary(cls): 53 salary = input("请输入您购买卡的余额:") 54ifnot salary.isdecimal(): 55print("您输入的卡的余额不是数值型,请重新输入 ") 56return Shopping.get_salary() 57else: 58return int(salary) 59 60def__init__(self, sell_product=[]): 61 self.salary = Shopping.get_salary() 62 self.sell_product = ProductList(sell_product) 63 self.buy_product = ProductList() 64 65def buy_some_product(self): 66 self.sell_product.print_all_product() 67 select_product = input("请输入您的产品编码: ") 68 product_num = input("请输入商品的数量: ") 69if product_num.isdigit(): 70 product_num = int(product_num) 71else: 72print("数量必须是数字!") 73 self.buy_some_product() 74# 如果够支付,则工资减少,同时buy_product增加一个商品 75if self.is_afford(select_product, product_num): 76 self.buy_product.add(self.sell_product.prod_list[select_product], product_num) 77 self.salary -= self.sell_product.prod_list[select_product].price*product_num 78 self.sell_product.minus(select_product, product_num) 79print("您当前购买商品如下:") 80 self.buy_product.print_all_product() 81print("您的余额是 %s 元" % self.salary) 82else: 83print("您的余额不足,请重新选择") 84 85# 判断当前的工资余额是否够支付产品 86def is_afford(self, procudtId, product_num): 87if type(procudtId) == int: 88 procudtId = str(procudtId) 89if self.salary >= self.sell_product.prod_list[procudtId].price * product_num: 90return True 91else: 92return False 93 94def select_process(self): 95while True: 96 selector = input(""" 97 请输入您的选择? 98 购买(b) 99 退出(q) 100""") 101if selector == ‘b‘: 102 self.buy_some_product() 103else: 104print("您购买了如下商品") 105 self.buy_product.print_all_product() 106print("您的余额是 %s 元" % self.salary) 107print("欢迎您下次光临") 108 sys.exit(0) 109110111112if__name__ == ‘__main__‘: 113# 测试初始化产品列表的信息的功能114 init_product=[Product(‘1‘, ‘bike‘, 100, 10), Product(‘2‘, ‘ipad‘, 3000, 3), Product(‘3‘, ‘paper‘, 500, 30)] 115 shop = Shopping(init_product) 116 shop.select_process()
类product:产品的基本信息
ProductList:以产品pid为key来存储许多产品,同时提供增加、减少产品数量的功能
Shopping:主要完成购物功能。初始化销售产品列表和购物卡余额。循环购物的过程。
注意:
ProductList.add(self, product, num=1)一定不能使用输入的product的信息,要保证各个列表中的product的信息是独立(产品中的数量是独立的)。
说明:这个小功能仅仅是练习。距离产品还有很大的差距。
原文:http://www.cnblogs.com/yangshl/p/6291335.html
内容总结
以上是互联网集市为您收集整理的使用python3简单完成购物过程全部内容,希望文章能够帮你解决使用python3简单完成购物过程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。