python教程39-做个淘宝双十一满减攻略

今天是2021年10月21日,很快又到每年的购物狂欢节双十一购物节了。

从今天开始所有的python文章都是实战篇,介绍一些案例的开发。很多是其他微信公共账号的,前提是我自己都可以运行成功,我在这分享一下。


下面这篇文章,部分来着:公众号【python数据分析之禅】

用python做个双十一购物攻略,把复杂的计算过程交给电脑解决,自动列出能购买哪些商品,成果如下:

图片

下面给大家信息介绍一下实现过程:

首先将要购买的商品及价格放入表格中:

图片

用pandas读取表格,并将商品名称和价格组合成字典:

import pandas as pd
data=pd.read_excel('商品.xlsx')
goods_price={}
for i,j in zip(list(data['名称']),list(data['原价'])):
    goods_price[i]=j
goods_price
{'训练短袖': 259,
 '训练外套': 589,
 '运动鞋': 389,
 '跑步鞋': 788,
 '卫衣': 209,
 '台灯': 119,
 '书籍': 246}

计算商品总价和折扣情况并输出

all_price=sum([int(goods_price[good]) for good in list(goods_price.keys())])  #求商品总价格
all_discount=int(all_price/300)
print('全部商品原价总额为{}元'.format(all_price))
print('全部商品可以满减{0}次'.format(all_discount))
print('满减后商品价格总额为{}元'.format(all_price-40*all_discount))   #每满300减40
全部商品原价总额为2599元
全部商品可以满减8次
满减后商品价格总额为2279元

输入购买力

money_max=int(input('请输入购买最大金额:'))
money_min=int(input('请输入购买最小金额:'))

对所有商品进行组合

import itertools
goods1=list(goods_price.keys())
goods2 = []
for i in range(1,len(goods1)+1):
    iter = itertools.combinations(goods1,i)
    goods2.append(list(iter))

图片

以商品组合为键,价格为值,创建字典

results={}
for i in goods2:
    for j in i:
        sum_price = 0
        sum_price+=sum([int(goods_price[k]) for k in j])
        results[j]=sum_price

图片

输出满足条件的满减商品

for i in list(results.keys()):
    last_price=results[i]-int(results[i]/300)*40
    if last_price>money_min and last_price<money_max:
        print('{0:{3}^20}\t{1:{3}^10}\t{2:^10}'.format(' '.join(i), '原价为{}元'.format(results[i]),
                                                       '满减后价格为{}元'.format(last_price),chr(12288)))
      训练短袖 跑步鞋      	 原价为1047元 	满减后价格为927元
       跑步鞋 书籍       	 原价为1034元 	满减后价格为914元
    训练短袖 训练外套 卫衣    	 原价为1057元 	满减后价格为937元
    训练短袖 训练外套 书籍    	 原价为1094元 	满减后价格为974元
    训练外套 运动鞋 台灯     	 原价为1097元 	满减后价格为977元
     训练外套 卫衣 书籍     	 原价为1044元 	满减后价格为924元
     跑步鞋 卫衣 台灯      	 原价为1116元 	满减后价格为996元
   训练短袖 运动鞋 卫衣 书籍   	 原价为1103元 	满减后价格为983元

最终的成果如下图:

图片

-完-

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值