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()

截图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM