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实现的各种排序算法代码
Mar 04 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
Python实现快速多线程ping的方法
Jul 15 Python
Python使用爬虫猜密码
Feb 19 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
Jan 29 Python
Pycharm以root权限运行脚本的方法
Jan 19 Python
Python配置虚拟环境图文步骤
May 20 Python
Python爬取爱奇艺电影信息代码实例
Nov 26 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
Python 实现PS滤镜中的径向模糊特效
Dec 03 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
一个javascript参数的小问题
2008/03/02 Javascript
javascript prototype,executing,context,closure
2008/12/24 Javascript
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
js格式化时间小结
2014/11/03 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
微信小程序实现商城倒计时
2020/11/01 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
vue实现节点增删改功能
2019/09/26 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
python打印异常信息的两种实现方式
2019/12/24 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
专科毕业生学习生活的自我评价
2013/10/26 职场文书
廉洁使者实施方案
2014/03/29 职场文书
煤矿安全生产标语
2014/06/06 职场文书
安全保证书格式
2015/02/28 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python