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

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

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

应用的库:xlrd random

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

表格xls数据如下:

 

 

代码段如下

import xlrd,random
xlsx=xlrd.open_workbook(r'D:\新桌面\python\python课件\示例.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相关函数,后续提升可设计抽奖界面,增加用户可操作性

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值