Python小算法 -- 发红包功能

输入总金额和红包数量,实现随机生成红包金额的功能。

思路:

1、先判断总金额是否足够,要保证每人至少0.01元。

2、使用random模块生成总和为红包金额,个数为红包个数的随机数,完成。

生成方法:

将总金额乘以100,换算到分,保证总金额为整数。

在1至总金额(不含)范围内取红包个数-1的随机整数,再加上0和总金额,生成随机数列表。

列表重新排序后,依次计算相邻两个数的差(所有的差之和就为总金额),即可得到每个人分到的以分为单位的金额,将金额除以100即可得到以元为单位的红包金额。

import random
def hongbao(total,num):
    if num*0.01>total:
        print('总金额过小!')
        return None
    else:
        result=[]
        lst=random.sample(range(1,int(total*100)),num-1)
        lst.append(0)
        lst.append(total*100)
        lst.sort()
        result=[(lst[i]-lst[i-1])/100 for i in range(1,len(lst))]
        return result
print(hongbao(10,2))

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值