微信红包 编写一个函数,模拟微信发红包。函数有两个参数:红包个数(默认值为20)和红包总 金额(默认值为200)。函数的返回值是存放所有随机产生的红包金额(保留两位小数) 的列表。每个红包金额的
时间: 2024-10-07 10:01:38 浏览: 87
微信红包是一种流行的社交媒体互动形式,通常在节日、庆祝活动或作为礼物发放给朋友。为了模拟这个功能,你可以创建一个Python函数,比如`generate_wechat_redpackets`,它接受两个可选参数:
```python
import random
def generate_wechat_redpackets(num=20, total_amount=200, precision=2):
"""
模拟微信发红包函数
:param num: 红包个数,默认20个
:param total_amount: 红包总金额,默认200元
:param precision: 保留的小数位数,默认2位
:return: 包含随机红包金额的列表
"""
# 验证输入的合理性
if num < 0 or not isinstance(num, int):
raise ValueError("红包个数必须是非负整数")
if total_amount <= 0 or not isinstance(total_amount, (int, float)):
raise ValueError("红包总金额必须是正数")
# 计算单个红包平均金额
avg_amount = total_amount / num
# 生成红包金额列表
redpackets = [round(random.uniform(0, avg_amount), precision) for _ in range(num)]
return redpackets
# 示例使用
random_redpackets = generate_wechat_redpackets()
print("随机生成的微信红包金额:", random_redpackets)
```
这个函数会生成指定数量的红包,并确保它们的总金额等于或略低于提供的总金额。每个红包金额是通过从总金额中减去剩余金额并四舍五入到指定精度得到的。
阅读全文