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