刚学习Python分享一个有意思的练手小程序

分配红包金额算法

想要使用Python实现微信抢红包流程,首先需要了解随机分配每个红包金额的算法。分配算法详细可见--微信红包的架构设计简介

额度∈[0.01,剩余平均值*2]
例如:发100块钱,总共10个红包,那么平均值是10块钱一个,那么发出来的红包的额度在0.01元~20元之间波动。当前面3个红包总共被领了40块钱时,剩下60块钱,总共7个红包,那么这7个红包的额度在:0.01~(60/7*2)=17.14之间。

import random as rd
import matplotlib.pyplot as pltnums = int(input("红包个数:"))
money = float(input("红包金额:"))
rest_money = money
money_list = []
acq_money, z_money, b = 0, 0, 0
for i in range(nums):rest_money -= acq_moneyrest_avg = rest_money / (nums - i)acq_money = rd.uniform(0.01, rest_avg * 2)money_list.append(round(acq_money, 2))if len(money_list) == (nums - 1):  # 循环进行到底,存在分配金额加和超过红包总金额的问题。break  # 在倒数第二个分配金额后跳出循环体
for a in money_list:z_money += a
last_money = money - z_money  # 计算最后一位金额
money_list.append(round(last_money, 2))
print(money_list)
for i in money_list:b += i
print(f"总金额:{round(b, 2)}元")  # 验证金额总和
max_money = max(money_list)
max_index = money_list.index(max(money_list))
print(f"红包金额最大:{max_money},第{max_index+1}个红包最大")

如果将循环体循环次数设置为设置红包个数,会出现随机生成红包金额总和大于预先设置红包总金额的情况。这样显然是不合理的,腾讯虽然财大气粗,但也不可能做亏本买卖。所以在循环体进行到(红包个数-1)次时跳出循环 。最后一个红包金额使用预设总金额 - 之间所有红包金额总和,保证总金额不会溢出。

微信抢红包小练习 Python实现相关推荐

  1. 小猪的Python学习之旅 —— 18.Python微信转发小宇宙早报

    小猪的Python学习之旅 -- 18.Python微信转发小宇宙早报 标签:Python 一句话概括本文: 利用itchat,监控特定信息,转发到特定微信群- 引言: 上一篇 小猪的Python学习 ...

  2. python 微信支付 小程序红包 发放红包接口

    python 微信支付 小程序红包 发放红包接口 文章目录 python 微信支付 小程序红包 发放红包接口 前言 一.官方文档 二.使用步骤 1.引入,直接复制粘贴以下代码,新建wx_pay.py ...

  3. 实现自己人生小目标之微信抢红包项目

    微信红包已经成为我们社交的一种方式,遇到朋友过生日发个小红包表示祝贺,遇到节日给长辈们发个红包表示慰问,遇到同学朋友群,漏掉了一个红包就仿佛失去了一个亿.这不,马上就要过年了,群里是不是又要下红包雨了 ...

  4. python 微信自动回复小程序

    #微信自动回复小程序,需要pip安装itchat,codesc,祝福语可以自己调整,数量自定,i_wm = int(round(random.random()*30,0))调整30的数量即可. #运行 ...

  5. 微信小程序答题赢红包 微信答题小程序抢红包,答题领微信零钱红包,答题红包小程序,可以自己出题考试的小程序

    使用答题小程序考试系统,可以在线出考题,让别人参与考试.考完以后,用户能看到自己的考试成绩,其他人点击这场考试的排行榜也能看到整场考试所有参与考试人的分数和排名情况. 想要让答题更有趣? 还可以设置答 ...

  6. MySQL云数据库+微信小程序+Python做项目

    MySQL云数据库+微信小程序+Python做项目 文章目录 MySQL云数据库+微信小程序+Python做项目 云数据库部分 Python连接云数据库 微信小程序连接云数据库 云数据库部分 大学生如 ...

  7. python发红包最佳手气王_看完这篇文章 以后微信抢红包手气王就是我了

    春节是中华民族隆重的农历新年,这是世界上规模最大的节日. 在春节前后,炎黄子孙们不远万里衣锦还乡,与亲人们团圆. 在此期间,中国的铁路上会发生,地球上最大规模的人口迁徙. 作为世界上最能吃最能玩的种族 ...

  8. Python微信订餐小程序课程汇总

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 你将收获 从基础语法入手,构建MVC架构 增进对小程序和后端API的理解认识 从项 ...

  9. 微信定时发情话--python小程序

    微信定时发情话--python小程序 话不多说直接上程序 主要的东西 效果 参考 话不多说直接上程序 import requests from wxpy import * from bs4 impor ...

最新文章

  1. 大专生自学Java到找到工作的过程
  2. 计算机小键盘 等号,小键盘上的 000 键
  3. android 上传到了maven,但是报错找不到jar
  4. 解决“QGtkStyle could not resolve GTK……”问题
  5. g标签 怎么设置svg_SVG g元素
  6. Nginx 502 Bad Gateway 错误的原因及解决方法
  7. 编写一个程序实现方法的覆盖java_编写Java程序代码必须先声明一个____,然后在其中编写实现需求的业务代码。...
  8. openssh8.6升级修复(CVE-2020-15778)(CVE-2018-15919)(CVE-2017-15906)等漏洞
  9. python 数据内容保留最后一位_python3-数据结构和算法 -- 1.3 保留最后 N 个元素
  10. Wireshark实战分析之DNS协议分析(一)
  11. luogu P3527 [POI2011]MET-Meteors
  12. Excel2013打印时怎么固定表头及表尾让打印后的每页都可以看得到
  13. 中文、\uxxxx、\x xx、base64的相互转码
  14. 29 | 无锁的原子操作:Redis如何应对并发访问?
  15. Java基础之父类引用指向子类对象
  16. android 单位pt,Android APPUI设计师必知:pt sp dp之间的关系
  17. ROS2 Foxy 安装
  18. 计算机组成原理实验写入怎么,计算机组成原理实验报告_寄存器的原理及操作...
  19. c语言让电脑自动加入空格,tmw字串符怎么导入_C语言如何连空格一直输入到字串符中...
  20. Java 实例 - 在指定目录中查找文件

热门文章

  1. 如何取消系统“嘟”的蜂鸣声(报警声)
  2. Angular+arcgisjs之平面地图测距、测面积、搜索
  3. Ubuntu一键部署Yunzai-Bot v3
  4. 齐岳:FITC/Rhodamine/Cy7荧光标记半乳糖Galactose/松醇D-Pinitol/甘露糖Mannos
  5. 3个小鲜肉依托网购创业,现公司市值达477亿美元
  6. 空间分析工具:GIS
  7. Linux、MacOS本地调用STF远程设备(stf.sh、stf-connect.js、stf-disconnect.js)
  8. linux安装iostat,yum安装iostat命令时,提示No package iostat available. 错误:无须任何处理(示例代码)...
  9. 医院需要遵守的3个BYOD实施策略
  10. 一般玫瑰线-matlab绘制