编写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设计模式之代理模式实例
Apr 26 Python
Python THREADING模块中的JOIN()方法深入理解
Feb 18 Python
Python解析树及树的遍历
Feb 03 Python
python字符串常用方法
Jun 14 Python
python常用运维脚本实例小结
Feb 14 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
Aug 11 Python
Python SQLAlchemy库的使用方法
Oct 13 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 Python
python简单实现插入排序实例代码
Dec 16 Python
Python基础之数据类型知识汇总
May 18 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
php实现scws中文分词搜索的方法
2015/12/25 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
(function($){...})(jQuery)的意思
2010/07/22 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
echarts整合多个类似option的方法实例
2018/07/10 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
python 实现多维数组(array)排序
2020/02/28 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
python基础之函数的定义和调用
2021/10/24 Python
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android