python编写实现抽奖器


Posted in Python onSeptember 10, 2020

本文实例为大家分享了python编写实现抽奖器的具体代码,供大家参考,具体内容如下

# coding=utf-8
import sys
import os
import openpyxl
if sys.version_info[0] == 2:
 import Tkinter
 from Tkinter import *
else:
 import tkinter as Tkinter
 from tkinter import *
from tkinter import messagebox

import random
data = []
going = True
is_run = False

def getNameList():
 path=os.getcwd()
 wb=openpyxl.load_workbook(r'list.xlsx')
 sheet=wb["Sheet1"]
 macList = []
 for i in range(2,sheet.max_row+1):
  macList.append(sheet.cell(row=i,column=1).value)
 return macList

def lottery_roll(var1, var2):
 global going
 if going:
 show_member = random.choice(data)
 var1.set(show_member)
 window.after(50, lottery_roll, var1, var2)
 else:
 var2.set('还有{}个小幸运鬼哟~'.format(len(data)))
 going = True
 return

def lottery_start(var1, var2):
 global is_run
 if is_run:
 messagebox.showwarning('提醒', '命运的齿轮正在疯狂转动哟!')
 return
 if len(data)==0:
  messagebox.showwarning('提醒', '没有幸运儿了哟,快去抓几个吧!')
  return
 is_run = True
 var2.set('命运的齿轮开始转动起来啦~')
 lottery_roll(var1, var2)
 
def lottery_end():
 global going, is_run, data
 if is_run:
 if len(data)==0:
  messagebox.showwarning('提醒', '没有幸运儿了哟,快去抓几个吧!')
  return
 show_member = random.choice(data)
 data.remove(show_member)
 print(show_member)
 var1.set(show_member)
 going = False
 is_run = False
 else:
 messagebox.showwarning('提醒', '命运的齿轮还没开动呢!')
 
if __name__ == '__main__':
 data = getNameList()
 window = Tkinter.Tk()
 window.geometry('800x500+500+200')
 window.title('谁是幸运儿?')
 
 bg_label = Label(window, width=800, height=500, bg='#ECf5FF')
 bg_label.place(anchor=NW, x=0, y=0)

 var_title = StringVar(value='谁是幸运儿?')
 show_label1_title = Label(window, textvariable=var_title, justify='left', anchor=CENTER, width=18, height=4, bg='#ECf5FF',
   font='楷体 -40 bold', foreground='black')
 show_label1_title.place(anchor=NW, x=200, y=0)

 var1 = StringVar(value='<.<')
 show_label1 = Label(window, textvariable=var1, justify='left', anchor=CENTER, width=7, height=2, bg='#BFEFFF',
   font='楷体 -40 bold', foreground='black')
 show_label1.place(anchor=NW, x=320, y=200)
 
 var2 = StringVar(value='共有{}个幸运儿,请开始游戏'.format(len(data)))
 show_label2 = Label(window, textvariable=var2, justify='left', anchor=CENTER, width=25, height=4, bg='#ECf5FF',
   font='楷体 -25 bold', foreground='red')
 show_label2.place(anchor=NW, x=240, y=320)

 button1 = Button(window, text='开始', command=lambda: lottery_start(var1, var2), width=14, height=2, bg='#A8A8A8',
   font='宋体 -18 bold')
 button1.place(anchor=NW, x=210, y=400)

 button2 = Button(window, text='结束', command=lambda: lottery_end(), width=14, height=2, bg='#A8A8A8',
   font='宋体 -18 bold')
 button2.place(anchor=NW, x=450, y=400)
 window.mainloop()

截图:

python编写实现抽奖器

python编写实现抽奖器

python编写实现抽奖器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现微信公众平台自定义菜单实例
Mar 20 Python
django之常用命令详解
Jun 30 Python
python数据结构之列表和元组的详解
Sep 23 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
Django的HttpRequest和HttpResponse对象详解
Jan 26 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
NumPy 数组使用大全
Apr 25 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
Python使用python-docx读写word文档
Aug 26 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
 分享一个Python 遇到数据库超好用的模块
Apr 06 Python
Python字符串及文本模式方法详解
Sep 10 #Python
python raise的基本使用
Sep 10 #Python
Python常用数字处理基本操作汇总
Sep 10 #Python
Python通用唯一标识符uuid模块使用案例
Sep 10 #Python
Python编写单元测试代码实例
Sep 10 #Python
python super()函数的基本使用
Sep 10 #Python
Python如何实现机器人聊天
Sep 10 #Python
You might like
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
建立动态的WML站点(一)
2006/10/09 PHP
PHP 动态随机生成验证码类代码
2010/04/09 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
python将文本转换成图片输出的方法
2015/04/28 Python
Ubuntu下安装PyV8
2016/03/13 Python
Python注释详解
2016/06/01 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
python爬虫爬取网页表格数据
2018/03/07 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
机械专业应届生求职信
2013/12/12 职场文书
关键在于落实心得体会
2014/09/03 职场文书
医德考评自我评价
2014/09/14 职场文书
2014年酒店工作总结与计划
2014/11/17 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
学生会辞职信
2015/03/02 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技
MySQL查询日期时间
2022/05/15 MySQL