直接上代码吧

# -*- coding: utf-8 -*-

from decimal import Decimal, InvalidOperation

import random

def money_val(min, max):

return min if min > max else Decimal(str(random.randint(min, max)))

def money_random(total, num, min=0.01):

"""

:param total=10; # 红包总额 10 元

:param num=8; # 分成 8 个红包,支持 8 人随机领取

:param min=0.01; # 每个人最少能收到 0.01 元

"""

money_list = []

try:

total = Decimal(str(total))

except InvalidOperation as e:

return money_list, e.message

try:

if isinstance(num, float) and int(num) != num:

raise ValueError(u'Invalid value for Num: \'{0}\''.format(num))

num = Decimal(str(int(num)))

except ValueError as e:

return money_list, e.message

try:

min = Decimal(str(min))

except InvalidOperation as e:

return money_list, e.message

if total < num * min:

return money_list, u'Invalid value for Total-{0}, Num-{1}, Min-{2}'.format(total, num, min)

for i in xrange(1, num):

safe_total = (total - (num - i) * min) / (num - i) # 随机安全上限

money = money_val(min * 100, int(safe_total * 100)) / 100

total -= money

money_list.append(money)

money_list.append(total)

random.shuffle(money_list) # 随机打乱

return money_list, u'Success'

if __name__ == '__main__':

print money_random(100, 5)

python随机发红包_python 微信红包随机金额相关推荐

  1. python爬虫爬微信红包_python 微信红包

    def redbags(money, num=10): import random choice = random.sample(range(1, money * 100), num - 1) cho ...

  2. python微信红包_python 微信红包

    def redbags(money, num=10): import random choice = random.sample(range(1, money * 100), num - 1) cho ...

  3. python qq红包_python实现红包裂变算法

    本文实例介绍了python实现红包裂变算法,分享给大家供大家参考,具体内容如下 Python语言库函数 安装:pip install redpackets使用: import redpackets r ...

  4. 微信抢红包代码 python_用 Python 实现一个简单的微信红包算法

    今年过年各位一定在微信里抢了不少红包.那么当别人是手气王而你只抢到1分钱的时候,你有没有想过,如果你来实现红包的分配算法,会怎么写? 这里我给一个简单的实现方案. 基本思路就是,有多少个红包,就循环多 ...

  5. 不想收?发错了?微信红包怎么退回

    现如今微信不单单只是用来聊天这么简单了,疫情之下,过年减少不必要的探亲活动,带来了微信红包的热潮,无论是过年红包还是平时发红包,一共有两种形式,微信红包和转账,经过小编的多次测试,微信红包怎么退回?到 ...

  6. 推荐 2 个阅读神器,发 20000 个微信红包封面

    先说个开心的事儿,前两天收到通知,可以定制发送微信红包封面,数量是20000个.大家猛戳下面的二维码,扫码就可以用了.希望你们喜欢 说实话,我一向对我的平面设计,都没有太大的信心.所以封面略显粗糙,请 ...

  7. css 微信红包,js微信红包实现方案

    大家肯定都使用过微信的红包功能,对微信红包的规则有一定的了解,它的规则是用户可以输入金额和红包的个数,然后供其他人去抽取,每个人最少可以抽到0.01元.一般最多可以抽到200元,那这个微信红包的效果是 ...

  8. python抢红包random实现_python写红包的原理流程包含random,lambda其中的使用和见简单介绍...

    Python写红包的原理流程 首先来说说要用到的知识点,第一个要说的是扩展包random,random模块一般用来生成一个随机数 今天要用到ramdom中unifrom的方法用于生成一个指定范围的随机 ...

  9. 怎么用python制作随机点名软件_python写一个随机点名软件的实例

    最近有个随机点名软件的需求,故写了一个,上代码:github地址 # -*- coding: utf-8 -*- # @Time : 18-12-31 下午4:21 # @Author : Felix ...

最新文章

  1. 程序员职业规划的3个锦囊
  2. EasyDarwin开源社区 短视频拍摄项目Github地址
  3. mysql autocommit 脚本_mysql autocommit的差异
  4. 8086存储器编址 和 I/O编址
  5. 运行pip报错:Fatal error in launcher: Unable to create process using '’路径’'
  6. 解决npm npm does not support Node.js
  7. ubuntu 20.04 DNS 设置
  8. MapKit框架使用
  9. 考核指标如CTR/CVR/ROI/ARPU等
  10. 简单的Wifi密码破解
  11. stm32教程之三重ADC交错采样
  12. VaR的应用:选择5家上市商业银行的股票交易致据(最近3年)使用 Weibull分布法估计其90天周期95%置信水平的VaR序列,并面出VaR时序图,计算每支股票最近3年内肤幅超过VaR预测园值的次
  13. Layui Form 如何主动验证表单是否通过
  14. Zend 发送邮件报错
  15. mysql写系统_一个用PHP和MYSQL写的定饭系统_PHP
  16. 颜宁:学术圈问题很多,也不分国籍,希望年轻一代守住底线
  17. 在线文字生成音频工具
  18. jspm彩虹滑板专卖网店系统毕业设计(附源码、运行环境)
  19. 【Unity3D】协同程序
  20. 谷歌浏览器升级到91出现跨域问题,导致cookie保存的sessionId不一样

热门文章

  1. 怎样在半年内把一个团队带垮?
  2. docker基础入门和docker compose实战
  3. HTTP对外接口,如何增加签名机制
  4. Hadoop框架:HDFS简介与Shell管理命令
  5. SpringBoot2.0 整合 QuartJob ,实现定时器实时管理
  6. 常用MySQ调优策略及相关分享:学习随记
  7. Python学习笔记:安装OBSFTP时出现的版本异常问题
  8. 如何通过Python玩转小视频
  9. Oracle的sql开发之包技术实战
  10. 招兵买马,韩国现代将前GM研究员招致麾下