python编写实现抽奖器
这篇文章主要为大家详细介绍了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练习笔记——编写一个装饰器,模拟登录的简单验证
编写一个装饰器,模拟登录的简单验证(至验证用户名和密码是否正确) 如果用户名为 root 密码为 123则正确,否则不正确.如果验证不通过则不执行被修饰函数 #编写一个装饰器,模拟登录的简单验证 #只 ...
- 【转载】Python编写简易木马程序
转载来自: http://drops.wooyun.org/papers/4751?utm_source=tuicool 使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马. 首先准备好 ...
- [译]Python编写虚拟解释器
使用Python编写虚拟机解释器 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环 ...
- Python深入05 装饰器
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 装饰器(decorator)是一种高级Python语法.装饰器可以对一个函数.方法 ...
- Day04 - Python 迭代器、装饰器、软件开发规范
1. 列表生成式 实现对列表中每个数值都加一 第一种,使用for循环,取列表中的值,值加一后,添加到一空列表中,并将新列表赋值给原列表 >>> a = [0, 1, 2, 3, 4, ...
- 简单说明Python中的装饰器的用法
简单说明Python中的装饰器的用法 这篇文章主要简单说明了Python中的装饰器的用法,装饰器在Python的进阶学习中非常重要,示例代码基于Python2.x,需要的朋友可以参考下 装饰器对与 ...
- python编写网络抓包分析脚本
python编写网络抓包分析脚本 写网络抓包分析脚本,一个称手的sniffer工具是必不可少的,我习惯用Ethereal,简单,易用,基于winpcap的一个开源的软件 Ethereal自带许多协议的 ...
- Python进阶之装饰器
函数也是对象 要理解Python装饰器,首先要明白在Python中,函数也是一种对象,因此可以把定义函数时的函数名看作是函数对象的一个引用.既然是引用,因此可以将函数赋值给一个变量,也可以把函数作为一 ...
- 浅显易懂的谈一谈python中的装饰器!!
hello大家好~~我是稀里糊涂林老冷,一天天稀里糊涂的. 前一段时间学习了装饰器,觉着这东西好高大上哇靠!!哈哈,一定要总结一下,方便以后自己查阅,也希望帮助其他伙伴们共同进步! 装饰器: 大家可以 ...
随机推荐
- Nginx作为反向代理时传递客户端IP的设置方法
因为nginx的优越性,现在越来越多的用户在生产环境中使用nginx作为前端,不管nginx在前端是做负载均衡还是只做简单的反向代理,都需要把日志转发到后端real server,以方便我们检查程序的 ...
- Dubbo部分知识点总结
Dubbo部分 Dubbo工作原理 dubbo工作原理第一层:service层,接口层,给服务提供者和消费者来实现的第二层:config层,配置层,主要是对dubbo进行各种配置的第三层:proxy层 ...
- CSS精灵图与字体图标
CSS精灵图与字体图标 1. 精灵图 当用户访问一个网站时,需要向服务器发送请求,网页上的每张图像都要经过一次请求才能展现给用户.然而,一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多 ...
- 多测师讲解IDE工具python_001.2pycham_安装
PyCharm安装使用教程 Pycharm 是目前 Python 语言最好用的集成开发工具. 下载 Pycharm 载时有两种版本选择 Professional(专业版,收费)和Community(社 ...
- 女儿拿着小天才电话手表问我App启动流程
前言 首先,new一个女儿, var mDdaughter = new 女儿("6岁","漂亮可爱","健康乖巧","最喜欢玩小天 ...
- Verilog基础入门——简单的语句块编写(一)
[题干] [代码] module top_module ( input in, output out ); assign out = ~in; endmodule 简单的实现一个非门
- C语言中数组与指针的异同之处!你不知道的编程奥秘~
C语言的数组和指针一直是两个容易混淆的东西,当初在学习的时候,也许为了通过考试会对指针和数组的一些考点进行突击,但是很多极其细节的东西也许并不是那么清楚.本篇侧重点在于分析数组与指针的关系,什么时候数 ...
- 利用RNN进行中文文本分类(数据集是复旦中文语料)
利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料) 1.训练词向量 数据预处理参考利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料) ,现在我们有了分词 ...
- Docker结合.Net Core初步使用
Docker是一项比较流行的容器化技术,可以让开发者将应用以及应用依赖的环境,依赖包一起打包到容器中,然后部署容器到生产环境就可以了,解决了应用程序部署到不同服务器环境带来的问题(很多开发人员都遇到过 ...
- Hive LLAP
body { margin: 0 auto; font: 13px / 1 Helvetica, Arial, sans-serif; color: rgba(68, 68, 68, 1); padd ...