用python实现随机选人、选取活动或节目小程序
用到的模块请自行导入(在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实现随机选人、选取活动或节目小程序相关推荐
- 定时定点打卡活动策划使用小程序解决方案 greeting = “Good day“;
<p>如果小时小于18:00,显示"美好的一天!":</p><p id="demo">晚安</p><scr ...
- Python爬虫系列之爬取某奢侈品小程序店铺商品数据
Python爬虫系列之爬取某奢侈品小程序店铺商品数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学 ...
- 活动报名发布小程序源码 聚会活动报名小程序完整版前端+后台管理Think
活动报名发布小程序源码 聚会活动报名小程序完整版前端+后台管理Think下载链接:https://pan.baidu.com/s/16e3egizS_bjuJTv2YcA6Xg 提取码:6n11
- 如何将一个python文件打包成一个可执行的小程序
如何将一个Python文件打包成一个可执行的小程序 一.安装pyinstaller pyinstaller: 一个用来打包python的py文件的库,通过他可以将.py文件打包成可执行的.exe文件 ...
- [附源码]计算机毕业设计Python+uniapp美年大健康体检预约小程序mv0vt(程序+lw+远程部署)
[附源码]计算机毕业设计Python+uniapp美年大健康体检预约小程序mv0vt(程序+lw+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Pyt ...
- [附源码]计算机毕业设计Python+uniapp美年大健康体检预约小程序q237e(程序+lw+远程部署)
[附源码]计算机毕业设计Python+uniapp美年大健康体检预约小程序q237e(程序+lw+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Pyt ...
- 纯 python 开发批量读取照片 Exif 信息的小程序
自己动手写一些小程序解决工作中的问题,是学习 python 的高效途径.这中间会遇到一些不动手想不到的问题,一个一个地解决它们,你 python 开发水平就会突飞猛进! 本文总结一下实战 python ...
- 基于Python编写一个B站全自动抽奖的小程序
本文将利用Python编写一个B站全自动抽奖的小程序,可以实时监控自己关注的UP主,如果关注的UP主中有人发布了抽奖的动态,就自动参与这个抽奖.这样就能不错过任何一个可以暴富的机会了.需要的可以参考一 ...
- python个人微信支付接口_Python实现微信小程序支付功能
正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...
最新文章
- Python 自带IDLE中调试程序
- Ubuntu 17.04 Chrome 安装
- 你还能再“二”一些吗?
- python源码精要(7)-CPython编译
- FreeSql (十八)导航属性
- 2019上半年这10本新书,技术大牛们都在追着看
- linux安装图像界面
- 设置,获取和删除Cookies
- python控制步进电机代码tx2_步进电机按键控制.lst
- Web前端-Vue中给input框赋值
- 关于使用canvas时fillRect添加矩形高度问题
- 上课笔记-机器学习(5)-美国人口普查数据进行收入预测分类
- 你看我像不像学HTML的人(五)——链接标签、注释和特殊字符
- Jpress的基本使用
- 记录下XPO生成的SQL语句
- Efficient Methods for Natural Language Processing: A Survey自然语言处理有效方法综述
- 云队友丨拼多多的两个世界
- navicat的使用以及学生信息表的操作
- OIPF,源于电信阵营的开放IPTV 解决方案
- CPC (Contrastive Predictive Coding)
热门文章
- Vue 点击文字改变文字颜色
- matlab 2016a破解中文版安装教程
- 网易互动直播2.0 开发 十二 视频设备管理
- 企业网盘的优势到底在哪里?
- Oracle的trunc函数与MySQL(Maria)的truncate函数
- selenium+python自动抢购源码
- 为了caffe(四)学习人家的文章
- 2.2. Concepts
- 本科计算机专业sci好写吗,保研经验:本科发表4篇SCI,横扫北大、清华、中科大、中科院、浙大17个OFFER!...
- Chrome浏览器中清除特定网站的Cookie数据