完成微信随机红包的分配,用户可以输入红包总金额,分配人数,随机分配 可以使用random.sample 函数,完成。
时间: 2024-10-05 13:04:26 浏览: 34
在Python中,你可以通过使用`random`模块的`sample`函数来实现微信随机红包的分配。首先,你需要做的是导入`random`模块,然后按照以下步骤操作:
1. **获取输入**:
- 让用户输入红包总金额(如`total_amount`),以及参与分配的人数(如`number_of_recipients`)。
```python
import random
total_amount = float(input("请输入红包总金额:"))
number_of_recipients = int(input("请输入分配给多少人:"))
```
2. **确认人数不超过金额**:
确保人数不会大于总金额,因为每个人不能领取负数金额。
```python
if number_of_recipients > total_amount:
print("分配人数不能超过红包总金额,请重新输入。")
else:
```
3. **计算每个红包金额**:
使用总金额除以人数得到平均每人可以分到的金额,然后由于`sample`需要整数作为索引,所以向下取整。
```python
per_person_amount = int(total_amount / number_of_recipients)
leftover_amount = total_amount % number_of_recipients # 额外的钱会随机分配给某几个人
4. **创建红包列表**:
列表长度等于参与人数,初始值都是`per_person_amount`,剩下的钱用`random.sample`随机分配。
```python
red_packet_amounts = [per_person_amount] * number_of_recipients
if leftover_amount > 0:
extra_recipients_indices = random.sample(range(number_of_recipients), leftover_amount)
for index in extra_recipients_indices:
red_packet_amounts[index] += 1
5. **显示红包信息**:
最后,将每个人的红包金额打印出来。
```python
print(f"每个人的红包金额分别为:{red_packet_amounts}")
```
阅读全文