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中用Descriptor实现类级属性(Property)详解
Sep 18 Python
最基础的Python的socket编程入门教程
Apr 23 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
用python处理MS Word的实例讲解
May 08 Python
Python中return self的用法详解
Jul 27 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 Python
Python作用域和名称空间的详细介绍
Apr 13 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
PHP7内核之Reference详解
2019/03/14 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
Chrome扩展页面动态绑定JS事件提示错误
2014/02/11 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
浅谈Python 对象内存占用
2016/07/15 Python
Python检测网络延迟的代码
2018/05/15 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Python识别html主要文本框过程解析
2020/02/18 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
中文师范生自荐信
2014/01/30 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
党支部换届选举方案
2014/05/08 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
市场策划求职信
2014/08/07 职场文书
《所见》教学反思
2016/02/23 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
教你用python实现12306余票查询
2021/06/30 Python