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 解析XML文件
Apr 15 Python
python实现rest请求api示例
Apr 22 Python
Python访问MySQL封装的常用类实例
Nov 11 Python
使用Node.js和Socket.IO扩展Django的实时处理功能
Apr 20 Python
Python解析最简单的验证码
Jan 07 Python
详解Python命令行解析工具Argparse
Apr 20 Python
python将ansible配置转为json格式实例代码
May 15 Python
Python3 replace()函数使用方法
Mar 19 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
Mar 11 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 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
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
JavaScript利用HTML DOM进行文档操作的方法
2016/03/28 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
node.js域名解析实现方法详解
2019/11/05 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
初步讲解Python中的元组概念
2015/05/21 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
高三自我鉴定怎么写
2013/10/19 职场文书
服务生自我鉴定
2014/01/22 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
表扬通报怎么写
2015/01/16 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS