栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python实现抽奖(学校Python实验作业)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python实现抽奖(学校Python实验作业)

问题描述:【年会抽奖】,要求每次中奖的两个人不是同一单位,两两输出直到所有人都抽出为止。

数据来源:一个含有两列信息的execl表格,第一列为工作单位,第二列为员工姓名。

应用的库:xlrd random

要点:了解xlrd库的函数用法,如何判断每次抽取两人单位是否一致

表格xls数据如下:

 

 

代码段如下

import xlrd,random
xlsx=xlrd.open_workbook(r'D:新桌面pythonpython课件示例.xls')
#打开所用的execl工作簿xls
table=xlsx.sheet_by_index(0)
#打开所用信息所在的工作表sheet
nrows=table.nrows
#提取工作表所用行数即员工总数
w=[i for i in range(nrows)]
#创建从0到(总数-1)的抽奖列表
for i in range(1,1+nrows//2):
    #只需需要循环总数一半向下取整即可
    x=random.choice(w)
    #随机选取一个员工x
    w.remove(x)
    #从抽奖列表中删除员工x
    for j in range(len(w)):
    #从剩余列表中遍历寻找下一个中奖人员
        y=random.choice(w)
        #随机再选取一名员工y
        if table.cell_value(y,0)!=table.cell_value(x,0):
            #判断两名员工是否是同一单位,这里运用xlrd库里的cell_value(x,y),提取第x行第y列单元格cell的信息
            print('第{}次中奖人员:'.format(i),table.cell_value(x,1),table.cell_value(y, 1))
            w.remove(y)
            #从抽奖列表中删除员工y
            break
            #满足抽取两人后,结束内层循环,继续大循环

运行结果如下:

 

总结:首先要将xlrd库配置好,了解xlrd相关函数,后续提升可设计抽奖界面,增加用户可操作性

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/283472.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号