编写python代码实现简单抽奖器


Posted in Python onOctober 20, 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性能优化技巧
Mar 09 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
详解python中的装饰器
Jul 10 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
Apache部署Django项目图文详解
Jul 30 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
重写django的model下的objects模型管理器方式
May 15 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 Python
python基于tkinter制作下班倒计时工具
Apr 28 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 Python
几款好用的python工具库(小结)
Oct 20 #Python
如何基于python实现年会抽奖工具
Oct 20 #Python
python使用re模块爬取豆瓣Top250电影
Oct 20 #Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 #Python
Python 制作查询商品历史价格的小工具
Oct 20 #Python
python实现扫雷游戏的示例
Oct 20 #Python
python3排序的实例方法
Oct 20 #Python
You might like
php程序的国际化实现方法(利用gettext)
2011/08/14 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
Angularjs 事件指令详细整理
2017/07/27 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
django2 快速安装指南分享
2018/01/05 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
关于python字符串方法分类详解
2019/08/20 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
Python日志syslog使用原理详解
2020/02/18 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
办公室主任岗位职责
2013/11/08 职场文书
入党申请自荐书范文
2014/02/11 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
2014年行政工作总结
2014/11/19 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL