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

用python实现随机选人、选取活动或节目小程序,第1张

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

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

@H_403_5@

代码如下:

// A code block# 调取用到的模块import pygame, sys, randomfrom 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# 异常处理while True:    try:        # 用户输入存放人员名单的Excel文件中,人名数据那一列的第一行,即表头,如果第一行放的是人名,这个人名将不会被选取到        namePath = input('##############################################################\n'                         '请将存放人员名单的Excel文件中,人名数据那一列的第一行改为表头,例如:姓名\n'                         '注意:不要将第一行就放入人名!\n'                         '如果未设置表头,请设置好后重新运行程序,\n'                         '并请您在此输入您设置的表头内容:')        # 用户输入存放数据的文件路径、表单名、列名        filePath = input('请输入存放人员名单的Excel文件名称及路径,例如:D:/chapter01/活动库.xlsx :')        sheetPath = input('请输入存放人员名单的表单名称,例如:Sheet1 :')        cloPath = input('请输入存放人员名单的列名,例如:A :')        # 从文件中调用数据,放入列表        nameList = nameRandom(filePath, sheetPath, cloPath, namePath)    except fileNotFoundError:        print('\n########## 您输入的文件不存在,请重新输入 ##########')    except ValueError:        print('\n########## 您输入的表单不存在,请重新输入 ##########')    except KeyError:        print('\n########## 您输入的表头不存在当前表单中,请确认表单及表头后重新输入 ##########')    except AssertionError:        print('\n########## 输入内容不能为空 ##########')    else:        break# 输入活动库的路径: 本程序是将活动直接放入列表中,也可以根据自己的需要用下行代码调用文件中的活动内容# acttiveList = nameRandom(r'活动库.xlsx','Sheet1','A','活动')# 设置显示板上将展示的3个文字变量name = ''active = ''startEnd = ''# 初始化pygamepygame.init()# 第一行显示的文本Title ='选人啦'# 设置显示板的大小screen = pygame.display.set_mode((1100,600))# 设置现实版的标题pygame.display.set_caption('随机点名')# 设置字体和大小startEndFont=pygame.Font.Font('simkai.ttf',60)nameFont=pygame.Font.Font('simkai.ttf',80)# 设置计数器容器counter = 0# 显示板while True:    # 显示板的背景图    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, randomfrom 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# 异常处理while True:    try:        # 用户输入存放人员名单的Excel文件中,人名数据那一列的第一行,即表头,如果第一行放的是人名,这个人名将不会被选取到        namePath = input('##############################################################\n'                         '请将存放人员名单的Excel文件中,人名数据那一列的第一行改为表头,例如:姓名\n'                         '注意:不要将第一行就放入人名!\n'                         '如果未设置表头,请设置好后重新运行程序,\n'                         '并请您在此输入您设置的表头内容:')        # 用户输入存放数据的文件路径、表单名、列名        filePath = input('请输入存放人员名单的Excel文件名称及路径,例如:D:/chapter01/活动库.xlsx :')        sheetPath = input('请输入存放人员名单的表单名称,例如:Sheet1 :')        cloPath = input('请输入存放人员名单的列名,例如:A :')        # 从文件中调用数据,放入列表        nameList = nameRandom(filePath, sheetPath, cloPath, namePath)    except fileNotFoundError:        print('\n########## 您输入的文件不存在,请重新输入 ##########')    except ValueError:        print('\n########## 您输入的表单不存在,请重新输入 ##########')    except KeyError:        print('\n########## 您输入的表头不存在当前表单中,请确认表单及表头后重新输入 ##########')    except AssertionError:        print('\n########## 输入内容不能为空 ##########')    else:        break# 输入活动库的路径: 本程序是将活动直接放入列表中,也可以根据自己的需要用下行代码调用文件中的活动内容# acttiveList = nameRandom(r'活动库.xlsx','Sheet1','A','活动')# 设置显示板上将展示的3个文字变量name = ''active = ''startEnd = ''# 初始化pygamepygame.init()# 第一行显示的文本Title ='选人啦'# 设置显示板的大小screen = pygame.display.set_mode((1100,600))# 设置现实版的标题pygame.display.set_caption('随机点名')# 设置字体和大小startEndFont=pygame.Font.Font('simkai.ttf',60)nameFont=pygame.Font.Font('simkai.ttf',80)# 设置计数器容器counter = 0# 显示板while True:    # 显示板的背景图    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实现随机选人、选取活动或节目程序全部内容,希望文章能够帮你解决用python实现随机选人、选取活动或节目小程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1186807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存