python編寫實(shí)現(xiàn)抽獎(jiǎng)器
本文實(shí)例為大家分享了python編寫實(shí)現(xiàn)抽獎(jiǎng)器的具體代碼,供大家參考,具體內(nèi)容如下
# 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('還有{}個(gè)小幸運(yùn)鬼喲~'.format(len(data)))
going = True
return
def lottery_start(var1, var2):
global is_run
if is_run:
messagebox.showwarning('提醒', '命運(yùn)的齒輪正在瘋狂轉(zhuǎn)動(dòng)喲!')
return
if len(data)==0:
messagebox.showwarning('提醒', '沒有幸運(yùn)兒了喲,快去抓幾個(gè)吧!')
return
is_run = True
var2.set('命運(yùn)的齒輪開始轉(zhuǎn)動(dòng)起來啦~')
lottery_roll(var1, var2)
def lottery_end():
global going, is_run, data
if is_run:
if len(data)==0:
messagebox.showwarning('提醒', '沒有幸運(yùn)兒了喲,快去抓幾個(gè)吧!')
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('提醒', '命運(yùn)的齒輪還沒開動(dòng)呢!')
if __name__ == '__main__':
data = getNameList()
window = Tkinter.Tk()
window.geometry('800x500+500+200')
window.title('誰是幸運(yùn)兒?')
bg_label = Label(window, width=800, height=500, bg='#ECf5FF')
bg_label.place(anchor=NW, x=0, y=0)
var_title = StringVar(value='誰是幸運(yùn)兒?')
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='共有{}個(gè)幸運(yùn)兒,請(qǐng)開始游戲'.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='結(jié)束', command=lambda: lottery_end(), width=14, height=2, bg='#A8A8A8',
font='宋體 -18 bold')
button2.place(anchor=NW, x=450, y=400)
window.mainloop()
截圖:



以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的抽獎(jiǎng)小程序
- Python關(guān)于抽獎(jiǎng)系統(tǒng)的思考與設(shè)計(jì)思路
- 使用Python可設(shè)置抽獎(jiǎng)?wù)邫?quán)重的抽獎(jiǎng)腳本代碼
- 基于Python實(shí)現(xiàn)評(píng)論區(qū)抽獎(jiǎng)功能詳解
- Python制作一個(gè)隨機(jī)抽獎(jiǎng)小工具的實(shí)現(xiàn)
- Python中實(shí)現(xiàn)限定抽獎(jiǎng)次數(shù)的機(jī)制的項(xiàng)目實(shí)踐
相關(guān)文章
關(guān)于自動(dòng)化測(cè)試框架pytest的Fixture固件
這篇文章主要介紹了關(guān)于自動(dòng)化測(cè)試框架pytest的Fixture固件,Fixture它其實(shí)就是一些函數(shù),會(huì)在執(zhí)行測(cè)試方法/測(cè)試函數(shù)前后加載運(yùn)行它們,需要的朋友可以參考下2023-03-03
python控制臺(tái)中實(shí)現(xiàn)進(jìn)度條功能
這篇文章主要介紹了python控制臺(tái)中實(shí)現(xiàn)進(jìn)度條功能的方法,想要了解的朋友可以參考一下2015-11-11
python windows services demo分享
本文介紹了如何使用Python的pywin32庫(kù)在Windows操作系統(tǒng)中創(chuàng)建和管理服務(wù),通過一個(gè)簡(jiǎn)單的示例代碼,展示了如何創(chuàng)建一個(gè)每隔10秒打印一條消息到日志文件的Windows服務(wù),文章還提供了安裝、啟動(dòng)、停止和卸載服務(wù)的命令,并附有注意事項(xiàng)2025-02-02
在PyCharm導(dǎo)航區(qū)中打開多個(gè)Project的關(guān)閉方法
今天小編就為大家分享一篇在PyCharm導(dǎo)航區(qū)中打開多個(gè)Project的關(guān)閉方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
python flask自定義404錯(cuò)誤頁(yè)面方式
這篇文章主要介紹了python flask自定義404錯(cuò)誤頁(yè)面方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
python實(shí)現(xiàn)多線程行情抓取工具的方法
當(dāng)我們實(shí)現(xiàn)了單線程,接下來就是實(shí)現(xiàn)多線程了,下面這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)多線程行情抓取工具的方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02
pygame實(shí)現(xiàn)俄羅斯方塊游戲(AI篇2)
這篇文章主要為大家詳細(xì)介紹了pygame實(shí)現(xiàn)俄羅斯方塊游戲AI的第2篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
Python?OpenCV實(shí)現(xiàn)圖像傅里葉變換
傅里葉變換,也稱作傅立葉變換,表示能將滿足一定條件的某個(gè)函數(shù)表示成三角函數(shù)(正弦和/或余弦函數(shù))或者它們的積分的線性組合。本文將介紹如何通過OpenCV實(shí)現(xiàn)圖像的傅里葉變換,需要的可以參考一下2022-01-01
Windows11使用Cpython?編譯文件報(bào)錯(cuò)?error:?Unable?to?find?vcvars
這篇文章主要介紹了Windows11使用Cpython編譯文件報(bào)錯(cuò)error:Unable?to find?vcvarsall.bat完美解決方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05

