作品演示

抽奖小程序演示.gif


这个抽奖程序虽小,但是基本上python的大多基础知识都运用到了,可以算是学习基础后一个很好的综合性实际应用例子。包括文件内容的读取,列表,列表推导式,变量,函数的运用以及python自带的图形界面库tkinter的简单使用。(tkinter详细使用可以点击链接查看

python代码


from tkinter import *
import random

# 定义滚动显示开关
is_scroll = False

# 定义开始按钮功能
def doclick():
   # print('click')
   
global is_scroll
   is_scroll = not is_scroll  # 每次按一下按钮改变状态

   # 三元表达式 如果屏幕正在滚动按钮显示停止,反之按钮显示开始
   
btn_text = '停止' if is_scroll else '开始'
   
dobutton.config(text=btn_text)
   # 原来不滚动状态 如果按下按钮变为True 滚动状态才调用run_counter()方法
   
if is_scroll:  
       run_counter()


# 定义一个计时器重复在屏幕上显示滚动数据
#root.after(100, counter) 每隔0.1秒 调用一次counter方法
def run_counter():
   def counter():
       global datas, is_scroll
       if is_scroll:
           valueLable.config(foreground='black')  # 滚动时滚动数据颜色为黑色
           
valueVar.set(random.choice(datas))    
# 随机选择数据列表样本中的某一项名单显示
           root.after(100, counter)
       else:
           valueLable.config(foreground='red')
           # 中奖处理
           
lucky_data = valueVar.get()  # 拿到当前中奖结果
           
print('中奖名单', lucky_data)
           # 写入中奖列表

           
s = '中奖结果:\n' if not luckyVar.get() else luckyVar.get()
           luckyVar.set(s + ' ' + lucky_data)

           # 从原来datas中移除
           
datas.remove(lucky_data)
           print(datas)
   counter()

# 读取记事本中的数据
with open('抽奖名单.txt','r',encoding='utf-8') as f:
   datas = f.readlines()
#整理数据格式 '\n'清除掉
datas = [x.strip('\n') for x in datas]
print(datas)

root = Tk()  # 实例化Tk类
root.title("抽奖小工具")
root.geometry('800x600')  # 中间的乘号是字母'x'


# 定义数据显示文本标签
valueVar = StringVar()  # 定义动态的字符变量
valueVar.set('点击开始开始抽奖')
valueLable = Label(root, textvariable=valueVar, font='微软雅黑 48 normal')
# 显示文本标签 BOTH 两个方向上扩展 pady 纵向30个距离单位
valueLable.pack(fill=BOTH, expand=True, pady=30)

# 定义中奖结果文本标签 wraplength 超过长度文本标签换行
luckyVar = StringVar()
luckyLable = Label(root, textvariable=luckyVar, font='微软雅黑 14 normal', wraplength=800)
luckyLable.pack(side=BOTTOM, pady=30)

# 定义开始抽奖按钮
# cursor='hand2' 鼠标指针移过去变手形
# command=doclick 绑定执行函数doclick
dobutton = Button(root, text='开始', font='微软雅黑 14 normal', width=20, cursor='hand2', command=doclick)
dobutton.pack(side=BOTTOM, pady=30)

root.mainloop()


可以用pyinstaller把这个程序打包成可执行文件,只要把‘抽奖名单.txt’记事本中的数据替换成自己抽奖的内容就可以个性化实现想要的抽奖内容(注意程序和‘抽奖名单.txt’要放在相同目录下

image.png


抽奖小程序.rar



0 评论 最近

没有评论!