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的函数嵌套的使用方法
Jan 24 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
解决python ogr shp字段写入中文乱码的问题
Dec 31 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
Python selenium自动化测试模型图解
Apr 15 Python
Keras设置以及获取权重的实现
Jun 19 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
python从ftp获取文件并下载到本地
Dec 05 Python
python脚本定时发送邮件
Dec 22 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
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
PHP时间函数使用详解
2019/03/21 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
django使用JWT保存用户登录信息
2020/04/22 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
杠杆的科学教学反思
2014/01/10 职场文书
追悼会上的答谢词
2014/01/10 职场文书
关于远足的感想
2015/08/10 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python