numpy的Python,发红包,用

发表时间:2020-12-25

题目:
# 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(),"元")    #打印出最终红包王

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free