這篇文章主要為大家詳細介紹了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()
|
截圖:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我。