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 相关文章推荐
使用Django Form解决表单数据无法动态刷新的两种方法
Jul 14 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
python判断设备是否联网的方法
Jun 29 Python
python 正确保留多位小数的实例
Jul 16 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
python issubclass 和 isinstance函数
Jul 25 Python
Python jieba库用法及实例解析
Nov 04 Python
numpy np.newaxis 的实用分享
Nov 30 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
Python快速优雅的批量修改Word文档样式
May 20 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
windows xp下安装pear
2006/12/02 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
YII路径的用法总结
2014/07/09 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
vue设置动态请求地址的例子
2019/11/01 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
详解Python中的Cookie模块使用
2015/07/06 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
外贸实习生自荐信范文
2013/11/24 职场文书
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
岗位职责风险点
2014/03/12 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
迟到检讨书范文
2015/01/27 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
工程部主管岗位职责
2015/02/12 职场文书