python模拟微信发红包的两种发放方式。能够输入领取红包人数(或通过读取文件确定人数)、发放金额,实现两种发放方式,能够显示红包发放情况,打印红包运气王的名单;并且调用文件里面的人物

时间: 2024-03-21 08:42:37 浏览: 17
好的,这是一个比较有趣的问题!首先,我们需要明确两种发放方式。第一种是平均分配法,即将红包金额平均分配给领取红包的每个人。第二种是随机分配法,即将红包金额随机分配给领取红包的每个人。下面是两种发放方式的实现,并且能够读取文件里面的人物。 ```python import random # 定义一个函数,用于读取文件里面的人物 def read_file(filename): with open(filename, 'r') as f: lines = f.readlines() return [line.strip() for line in lines] # 平均分配法 def average_red_packet(num_people, total_amount): amount = total_amount / num_people result = [amount] * num_people return result # 随机分配法 def random_red_packet(num_people, total_amount): result = [] remain_amount = total_amount remain_people = num_people for i in range(num_people): if remain_people == 1: result.append(remain_amount) else: amount = random.randint(1, remain_amount - remain_people + 1) result.append(amount) remain_amount -= amount remain_people -= 1 return result # 测试代码 if __name__ == '__main__': filename = 'people.txt' people = read_file(filename) num_people = len(people) total_amount = 100 # 发放的红包总金额 print('红包总金额:', total_amount) print('领取红包的人数:', num_people) print() # 平均分配法 print('平均分配法:') red_packets = average_red_packet(num_people, total_amount) for i in range(num_people): print('{}领取了{}元'.format(people[i], red_packets[i])) print() # 随机分配法 print('随机分配法:') red_packets = random_red_packet(num_people, total_amount) for i in range(num_people): print('{}领取了{}元'.format(people[i], red_packets[i])) print() # 找到红包运气王 max_amount = max(red_packets) luckiest = [] for i in range(num_people): if red_packets[i] == max_amount: luckiest.append(people[i]) print('红包运气王:', ','.join(luckiest)) ``` 需要注意的是,我们在读取文件里面的人物时,使用了`strip()`函数来去除每行末尾的换行符。这是因为在文件中,每行末尾都有一个换行符。如果不去除的话,会影响后面对人物的处理。另外,需要确保人物的数量不小于领取红包的人数,否则程序会出现错误。

相关推荐

最新推荐

recommend-type

Python使用微信SDK实现的微信支付功能示例

主要介绍了Python使用微信SDK实现的微信支付功能,结合实例形式分析了Python调用微信SDK接口实现微信支付功能的具体步骤与相关操作技巧,需要的朋友可以参考下
recommend-type

Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息

主要介绍了Python 通过微信控制实现app定位发送到个人服务器,再转发微信服务器接收位置信息,本文给出了实例代码,代码简单易懂,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

Python实现的微信支付方式总结【三种方式】

主要介绍了Python实现的微信支付方式,结合实例形式总结分析了Python实现的三种微信支付方式及相关操作步骤、原理、注意事项,需要的朋友可以参考下
recommend-type

10分钟教你用Python实现微信自动回复功能

今天,我们就来用Python实现微信的自动回复功能吧,并且把接收到的消息统一发送到文件助手里面,方便统一查看。感兴趣的朋友跟随小编一起看看吧
recommend-type

Python实现读取Properties配置文件的方法

主要介绍了Python实现读取Properties配置文件的方法,结合实例形式分析了Python读取Properties配置文件类的定义与使用相关操作技巧,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。