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 排列组合之itertools
Mar 20 Python
Python中3种内建数据结构:列表、元组和字典
Nov 30 Python
python基于Tkinter库实现简单文本编辑器实例
May 05 Python
浅析python协程相关概念
Jan 20 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
对python3中, print横向输出的方法详解
Jan 28 Python
Django框架使用内置方法实现登录功能详解
Jun 12 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
python 实现return返回多个值
Nov 19 Python
Django实现将一个字典传到前端显示出来
Apr 03 Python
python常量折叠基础知识点讲解
Feb 28 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 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中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python线程锁(thread)学习示例
2013/12/04 Python
Python中的XML库4Suite Server的介绍
2015/04/14 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
浅谈python函数之作用域(python3.5)
2017/10/27 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
医院护理人员的自我评价分享
2013/10/04 职场文书
精神病医院见习报告
2014/11/03 职场文书
作弊检讨书
2015/01/27 职场文书
学校教学管理制度
2015/08/06 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server