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和pyqt实现360的CLable控件
Feb 21 Python
python通过索引遍历列表的方法
May 04 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
python实现整数的二进制循环移位
Mar 08 Python
python 获取等间隔的数组实例
Jul 04 Python
Python定时任务工具之APScheduler使用方式
Jul 24 Python
Python函数式编程指南:对生成器全面讲解
Nov 19 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
在ipython notebook中使用argparse方式
Apr 20 Python
Pytorch转onnx、torchscript方式
May 25 Python
python的netCDF4批量处理NC格式文件的操作方法
Mar 21 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
求PHP数组最大值,最小值的代码
2011/10/31 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
Python中的推导式使用详解
2015/06/03 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
社会实践自我鉴定
2013/11/07 职场文书
机械设计专业应届生求职信
2013/11/21 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
实习报告范文
2019/07/30 职场文书
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技