任务二:模拟微信发红包的两种发放方式。能够输入领取红包人数(或通过读取文件确定人数)、发放金额,实现两种发放方式,能够显示红包发放情况,打印红包运气王的名单。
时间: 2024-03-16 19:42:01 浏览: 142
好的,我会为您解答。首先,微信发红包有两种发放方式:普通红包和拼手气红包。下面分别介绍如何实现这两种发放方式。
## 普通红包
普通红包是指发红包时,每个人领取到的金额是相等的。下面是一个简单的实现过程:
1. 输入红包金额和领取人数。
2. 计算每个人领取的金额:红包金额除以领取人数。
3. 生成一个长度为领取人数的随机数列表,每个元素的值为0~1之间的随机数。
4. 对随机数列表进行排序。
5. 根据排序后的随机数列表和每个人领取的金额,计算每个人领取到的金额。
6. 打印红包发放情况和红包运气王的名单。
下面是一个 Python 代码示例:
```python
import random
# 输入红包金额和领取人数
total_amount = float(input("请输入红包金额:"))
total_people = int(input("请输入领取人数:"))
# 计算每个人领取的金额
per_amount = total_amount / total_people
# 生成随机数列表并排序
random_list = [random.random() for i in range(total_people)]
random_list.sort()
# 计算每个人领取到的金额
money_list = []
start = 0
for i in range(total_people):
end = start + int(random_list[i] * 100)
money_list.append(round((end - start) * per_amount, 2))
start = end
# 打印红包发放情况和红包运气王的名单
for i in range(total_people):
print("第{}个人领取了{}元".format(i+1, money_list[i]))
print("恭喜{}成为本次红包的运气王,获得了{}元".format(money_list.index(max(money_list))+1, max(money_list)))
```
## 拼手气红包
拼手气红包是指发红包时,每个人领取到的金额是不相等的。下面是一个简单的实现过程:
1. 输入红包金额和领取人数。
2. 计算每个人领取的金额:红包金额除以领取人数。
3. 生成一个长度为领取人数的随机数列表,每个元素的值为0~1之间的随机数。
4. 对随机数列表进行排序。
5. 根据排序后的随机数列表和每个人领取的金额,计算每个人领取到的金额。
6. 打印红包发放情况和红包运气王的名单。
下面是一个 Python 代码示例:
```python
import random
# 输入红包金额和领取人数
total_amount = float(input("请输入红包金额:"))
total_people = int(input("请输入领取人数:"))
# 计算每个人领取的金额
per_amount = total_amount / total_people
# 生成随机数列表并排序
random_list = [random.random() for i in range(total_people)]
random_list.sort()
# 计算每个人领取到的金额
money_list = []
start = 0
for i in range(total_people):
end = start + int(random_list[i] * 100)
money_list.append(round((end - start) * per_amount, 2))
start = end
# 打印红包发放情况和红包运气王的名单
for i in range(total_people):
print("第{}个人领取了{}元".format(i+1, money_list[i]))
print("恭喜{}成为本次红包的运气王,获得了{}元".format(money_list.index(max(money_list))+1, max(money_list)))
```
阅读全文