用到的模块请自行导入(在pycharm中菜单栏File选取setting→Python Interprete→“+” → 搜索相应的模块名称,选中→Install Package进行下载)
我用的Excel文件存储的人名格式如下图所示,表头为:姓名,表单名为:Sheet2,列名为:A,文件名为:宿舍名单.xlsx

显示板的背景图如下,就是一张空白图片,‘22.png’:

代码如下:

// A code block
# 调取用到的模块
import pygame, sys, random
from pygame.locals import *
import pandas as pd# 定义从文件导入名单的函数
def nameRandom(fileName, sheetName, columnName,cloName):name = pd.read_excel(fileName, sheet_name=sheetName, usecols=columnName)nameList = []for i in name[cloName]:nameList.append(i)return nameList # 存放数据的文件路径、表单名、列名
filePath = 'D:/chapter01/活动库.xlsx'  # 存放人员名单的Excel文件名称及路径
sheetPath = 'Sheet1'  # 表单名称
cloPath = 'A'   # 列名
namePath = '姓名'  # 表头,注意:excel表中不要将第一行就放入人名
# 从文件中调用数据,放入列表
nameList = nameRandom(filePath, sheetPath, cloPath, namePath)# 输入活动库的路径: 本程序是将活动直接放入列表中,也可以根据自己的需要用下行代码调用文件中的活动内容
# acttiveList = nameRandom(r'活动库.xlsx','Sheet1','A','活动')
# 设置显示板上将展示的3个文字变量
name = ''
active = ''
startEnd = ''
# 初始化pygame
pygame.init()
# 第一行显示的文本
title ='选人啦'
# 设置显示板的大小
screen = pygame.display.set_mode((1100,600))
# 设置现实版的标题
pygame.display.set_caption('随机点名')
# 设置字体和大小,‘simkai.ttf’为字体的文件路径,这里是相对路径,也可使用绝对路径
startEndFont=pygame.font.Font('simkai.ttf',60)
nameFont=pygame.font.Font('simkai.ttf',80)
# 设置计数器容器
counter = 0
# 显示板
while True:# ‘22.png’为显示板的背景图文件路径,可自行下载,或者自己准备好图片后调整文字的位置bg=pygame.image.load('22.png')screen.blit(bg,(0,0))# 遍历事件是否为退出,设置退出循环开关,当event为QUIT时退出循环for event in pygame.event.get():if event.type==QUIT:sys.exit()# 获得键盘事件keys=pygame.key.get_pressed()# 当键盘事件为按下回车键时,随机选择名单if keys[K_RETURN]:# 防止由名单列表为空引起的报错if len(nameList)!=0:# 随机选人name = random.choice(nameList)# 将活动放入一个列表,也可以调用nameRandom()函数从文件中导入activeList = ['唱歌', '跳舞', '俯卧撑', '蛙跳']# 随机选择活动active = random.choice(activeList)# 显示板展示选人是否结束startEnd = '松开回车键结束'# 当回车键未按下时else:# 防止由name删除后不在列表中而引起的报错if name in nameList:counter += 1  #记录当前选出了多少小组# 向用户展示当前是第几次选人,以及选人的结果print("第"+str(counter)+"小组,他们是:<" + name + " 小组>,   选择的活动名是:《" + active+"》")# 删除选中的姓名,避免重复出现nameList.remove(name)# 显示板展示可以开始选人startEnd = '按下回车键开始'# 设置输出的文本字体及颜色titleText = startEndFont.render(title, True, (0,0,250))nameText = nameFont.render(name, True, (0,0,250))activeText = nameFont.render(active, True, (0,0,250))okText = startEndFont.render(startEnd, True, (0,0,250))# 设置输出的文本位置screen.blit(titleText,(300,120))screen.blit(nameText,(120,260))screen.blit(okText,(200,400))screen.blit(activeText,(530,260))# 更新展示板pygame.display.update()
// An highlighted block
# 调取用到的模块
import pygame, sys, random
from pygame.locals import *
import pandas as pd# 定义从文件导入名单的函数
def nameRandom(fileName, sheetName, columnName,cloName):name = pd.read_excel(fileName, sheet_name=sheetName, usecols=columnName)nameList = []for i in name[cloName]:nameList.append(i)return nameList# 存放数据的文件路径、表单名、列名
filePath = 'D:/chapter01/活动库.xlsx'  # 存放人员名单的Excel文件名称及路径
sheetPath = 'Sheet1'  # 表单名称
cloPath = 'A'   # 列名
namePath = '姓名'  # 表头,注意:excel表中不要将第一行就放入人名
# 从文件中调用数据,放入列表
nameList = nameRandom(filePath, sheetPath, cloPath, namePath)# 输入活动库的路径: 本程序是将活动直接放入列表中,也可以根据自己的需要用下行代码调用文件中的活动内容
# acttiveList = nameRandom(r'活动库.xlsx','Sheet1','A','活动')
# 设置显示板上将展示的3个文字变量
name = ''
active = ''
startEnd = ''
# 初始化pygame
pygame.init()
# 第一行显示的文本
title ='选人啦'
# 设置显示板的大小
screen = pygame.display.set_mode((1100,600))
# 设置现实版的标题
pygame.display.set_caption('随机点名')
# 设置字体和大小,‘simkai.ttf’为字体的文件路径,这里是相对路径,也可使用绝对路径
startEndFont=pygame.font.Font('simkai.ttf',60)
nameFont=pygame.font.Font('simkai.ttf',80)
# 设置计数器容器
counter = 0
# 显示板
while True:# ‘22.png’为显示板的背景图文件路径,可自行下载,或者自己准备好图片后调整文字的位置bg=pygame.image.load('22.png')screen.blit(bg,(0,0))# 遍历事件是否为退出,设置退出循环开关,当event为QUIT时退出循环for event in pygame.event.get():if event.type==QUIT:sys.exit()# 获得键盘事件keys=pygame.key.get_pressed()# 当键盘事件为按下回车键时,随机选择名单if keys[K_RETURN]:# 防止由名单列表为空引起的报错if len(nameList)!=0:# 随机选人name = random.choice(nameList)# 将活动放入一个列表,也可以调用nameRandom()函数从文件中导入activeList = ['唱歌', '跳舞', '俯卧撑', '蛙跳']# 随机选择活动active = random.choice(activeList)# 显示板展示选人是否结束startEnd = '松开回车键结束'# 当回车键未按下时else:# 防止由name删除后不在列表中而引起的报错if name in nameList:counter += 1  #记录当前选出了多少小组# 向用户展示当前是第几次选人,以及选人的结果print("第"+str(counter)+"小组,他们是:<" + name + " 小组>,   选择的活动名是:《" + active+"》")# 删除选中的姓名,避免重复出现nameList.remove(name)# 显示板展示可以开始选人startEnd = '按下回车键开始'# 设置输出的文本字体及颜色titleText = startEndFont.render(title, True, (0,0,250))nameText = nameFont.render(name, True, (0,0,250))activeText = nameFont.render(active, True, (0,0,250))okText = startEndFont.render(startEnd, True, (0,0,250))# 设置输出的文本位置screen.blit(titleText,(300,120))screen.blit(nameText,(120,260))screen.blit(okText,(200,400))screen.blit(activeText,(530,260))# 更新展示板pygame.display.update()

用python实现随机选人、选取活动或节目小程序相关推荐

  1. 定时定点打卡活动策划使用小程序解决方案 greeting = “Good day“;

    <p>如果小时小于18:00,显示"美好的一天!":</p><p id="demo">晚安</p><scr ...

  2. Python爬虫系列之爬取某奢侈品小程序店铺商品数据

    Python爬虫系列之爬取某奢侈品小程序店铺商品数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学 ...

  3. 活动报名发布小程序源码 聚会活动报名小程序完整版前端+后台管理Think

    活动报名发布小程序源码 聚会活动报名小程序完整版前端+后台管理Think下载链接:https://pan.baidu.com/s/16e3egizS_bjuJTv2YcA6Xg 提取码:6n11

  4. 如何将一个python文件打包成一个可执行的小程序

    如何将一个Python文件打包成一个可执行的小程序 一.安装pyinstaller pyinstaller: 一个用来打包python的py文件的库,通过他可以将.py文件打包成可执行的.exe文件 ...

  5. [附源码]计算机毕业设计Python+uniapp美年大健康体检预约小程序mv0vt(程序+lw+远程部署)

    [附源码]计算机毕业设计Python+uniapp美年大健康体检预约小程序mv0vt(程序+lw+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Pyt ...

  6. [附源码]计算机毕业设计Python+uniapp美年大健康体检预约小程序q237e(程序+lw+远程部署)

    [附源码]计算机毕业设计Python+uniapp美年大健康体检预约小程序q237e(程序+lw+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Pyt ...

  7. 纯 python 开发批量读取照片 Exif 信息的小程序

    自己动手写一些小程序解决工作中的问题,是学习 python 的高效途径.这中间会遇到一些不动手想不到的问题,一个一个地解决它们,你 python 开发水平就会突飞猛进! 本文总结一下实战 python ...

  8. 基于Python编写一个B站全自动抽奖的小程序

    本文将利用Python编写一个B站全自动抽奖的小程序,可以实时监控自己关注的UP主,如果关注的UP主中有人发布了抽奖的动态,就自动参与这个抽奖.这样就能不错过任何一个可以暴富的机会了.需要的可以参考一 ...

  9. python个人微信支付接口_Python实现微信小程序支付功能

    正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...

最新文章

  1. Python 自带IDLE中调试程序
  2. Ubuntu 17.04 Chrome 安装
  3. 你还能再“二”一些吗?
  4. python源码精要(7)-CPython编译
  5. FreeSql (十八)导航属性
  6. 2019上半年这10本新书,技术大牛们都在追着看
  7. linux安装图像界面
  8. 设置,获取和删除Cookies
  9. python控制步进电机代码tx2_步进电机按键控制.lst
  10. Web前端-Vue中给input框赋值
  11. 关于使用canvas时fillRect添加矩形高度问题
  12. 上课笔记-机器学习(5)-美国人口普查数据进行收入预测分类
  13. 你看我像不像学HTML的人(五)——链接标签、注释和特殊字符
  14. Jpress的基本使用
  15. 记录下XPO生成的SQL语句
  16. Efficient Methods for Natural Language Processing: A Survey自然语言处理有效方法综述
  17. 云队友丨拼多多的两个世界
  18. navicat的使用以及学生信息表的操作
  19. OIPF,源于电信阵营的开放IPTV 解决方案
  20. CPC (Contrastive Predictive Coding)

热门文章

  1. Vue 点击文字改变文字颜色
  2. matlab 2016a破解中文版安装教程
  3. 网易互动直播2.0 开发 十二 视频设备管理
  4. 企业网盘的优势到底在哪里?
  5. Oracle的trunc函数与MySQL(Maria)的truncate函数
  6. selenium+python自动抢购源码
  7. 为了caffe(四)学习人家的文章
  8. 2.2. Concepts
  9. 本科计算机专业sci好写吗,保研经验:本科发表4篇SCI,横扫北大、清华、中科大、中科院、浙大17个OFFER!...
  10. Chrome浏览器中清除特定网站的Cookie数据