Python 发红包(用numpy)

题目:
# 1.按照本班级人数,如50人,生成对应数量的随机数,组成一个随机红包数组。
# 2.调整红包中的每一个随机数,使得它们的总和为100。
# 3.从csv文件(自己用excel创建,可以大家共享)中读出本班学生名字数组,这个数组要和红包数组shape一样。
# 4.筛选出运气王的名字,即红包最大的同学名字。
# 5.同样逻辑再发一次红包,筛选出两次红包之和的运气王。

#encoding:utf-8
import csv    #导入CSV模块
import numpy as np   #导入Numpy模块

with open('1890009.csv','r') as csvfile:   #打开文件
    reader = csv.reader(csvfile)    #读取文件
    column1 = [row[1]for row in reader]    #选取第一行,读出本班学生姓名
    del column1[0]     #删除列表中的一次元素‘id'
    print(column1)

#第一次发红包
first = np.random.random(50)   #生成50个随机数
red=np.round(first*(100/first.sum()),2)    #对随机数做出调整,使和为100#设定随机数精确至小数点后两位
print("第一次红包金额:",red)
print('第一次最大的红包金额{:.2f}'.format(red.max()))
index2=np.argmax(red)    #找到最大红包金额的下标
print('第一次的红包王:',column1[index2])    #根据最大红包金额的坐标找到对应的人名
#第二次发红包
second=np.random.random(50)    #再次生成五十个随机数
red2=np.round(second*(100/second.sum()),2)   #第二次红包金额
print("第二次红包金额:",red2)
redSum=red+red2    #将两次红包金额相加
king=np.argmax(redSum)    #找出最终红包王的下标
print("最终的红包王",column1[king],"一共得到:",red2.max(),"元")    #打印出最终红包王

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值