Python学习随记 ————随机抽号器(一)
第一篇博客 2018-07-15
笔者是一名学生,见到很多教师会选择用抽号的方式点名、收作业,甚至来确定期末口语考试的背诵文章,特花了几天时间,查阅了大量资料,完成了此抽号器。闲话不多说,进入正题。
界面是这样的:
功能是这样的:
- 随机抽取学号
- 结果保存至本地
- 修改字体及大小
代码是这样的:
- 首先画出一个窗口:
1 def __init__(self): 2 chuangkou= Tk() 3 chuangkou.title("随机抽取学号") 4 chuangkou.geometry('800x500') 5 6 menu=Menu(chuangkou) 7 8 submenuwenjian=Menu(menu,tearoff=0) 9 submenuwenjian.add_command(label="保存到",command=self.lingcunwei,font=("宋体",12,"normal")) 10 menu.add_cascade(label="文件",menu=submenuwenjian,font=("宋体",12,"normal")) 11 12 geshi=Menu(menu,tearoff=0) 13 geshi.add_command(label="字体",command=self.zitichuang,font=("宋体",12,"normal")) 14 menu.add_cascade(label="格式",menu=geshi,font=("宋体",12,"normal")) 15 16 submenubangzhu=Menu(menu,tearoff=0) 17 submenubangzhu.add_command(label="使用说明",command=self.shiyongshuoming,font=("宋体",12,"normal")) 18 submenubangzhu.add_command(label="关于",command=self.guanyu,font=("宋体",12,"normal")) 19 menu.add_cascade(label="帮助",menu=submenubangzhu,font=("宋体",12,"normal")) 20 21 menu.add_command(label="退出",command=chuangkou.quit,font=("宋体",12,"normal")) 22 23 chuangkou.config(menu=menu) 24 25 frame1 = Frame(chuangkou) 26 frame1.pack() 27 zhanghaolabel = Label(frame1, text = "总人数:",font=("宋体",20,"normal")) 28 self.name1 = StringVar() 29 zhanghaoEntry = Entry(frame1, textvariable = self.name1,font=("宋体",18,"normal")) 30 mimalabel = Label(frame1, text = "抽取人数:",font=("宋体",20,"normal")) 31 self.name2 = StringVar() 32 mimaEntry = Entry(frame1, textvariable = self.name2,font=("宋体",18,"normal")) 33 zhucebutton = Button(frame1, text = "随机抽取",font=("宋体",20,"normal"),command = self.chouqu) 34 zhanghaolabel.grid(row = 1, column = 1) 35 zhanghaoEntry.grid(row = 1, column = 2) 36 mimalabel.grid(row = 2, column = 1) 37 mimaEntry.grid(row = 2, column = 2) 38 zhucebutton.grid(row = 3, column = 2) 39 40 frame2 = Frame(chuangkou) 41 frame2.pack(fill=BOTH,expand=1) 42 self.xianshibeichouquText=Text(frame2,font=("宋体",24,"bold")) 43 self.xianshibeichouquText.pack(fill=BOTH,expand=1) 44 45 gundongtiaoY=Scrollbar(self.xianshibeichouquText) 46 self.xianshibeichouquText['yscrollcommand']=gundongtiaoY.set 47 48 gundongtiaoY.pack(side=RIGHT,fill=Y) 49 gundongtiaoY.config(command=self.xianshibeichouquText.yview) 50 51 chuangkou.mainloop()
接着就是每个模块的方法:
抽取号码模块:
1 def chouqu(self): 2 self.xianshibeichouquText.delete(1.0,tkinter.END) 3 liebiao = [ ] 4 count=1 5 try: 6 renshu=int(self.name1.get()) 7 chouqurenshu=int(self.name2.get()) 8 if renshu<chouqurenshu: 9 chouqurenshu=renshu 10 except ValueError: 11 tkinter.messagebox.showerror("错误", "请输入整数") 12 while count <= chouqurenshu: 13 a=randint(1,renshu) 14 if a not in liebiao: 15 liebiao.append(a) 16 count=count+1 17 self.xianshibeichouquText.insert(END,"本次共随机抽取"+str(chouqurenshu)+"人\n") 18 self.xianshibeichouquText.insert(END,"随机抽到学号如下:\n") 19 for b in str(sorted(liebiao)): 20 if b != "[" and b!="]" : 21 if b==",": 22 self.xianshibeichouquText.insert(END,"号\n") 23 else: 24 self.xianshibeichouquText.insert(END,b) 25 self.xianshibeichouquText.insert(END,"号\n") 26 liebiao = [ ]
结果存入本地模块:
def lingcunwei(self): global filenamef=asksaveasfilename(initialfile="抽取名单.txt",defaultextension=".txt")filename=ffh=open(f,'w')msg=self.xianshibeichouquText.get(1.0,END)fh.write(msg)fh.close()
更改子体模块:
1 def yingyongziti(self): 2 self.xianshibeichouquText['font']=(self.zitichosen.get(),self.daxiaochosen.get(),self.getchuandizixing()) 3 4 def getchuandizixing(self): 5 zixing=["常规","normal","粗体","bold","倾斜","italic"] 6 self.b="normal" 7 for a in enumerate(zixing): 8 if self.zixingchosen.get()==a[1]: 9 self.b=zixing[a[0]+1] 10 return self.b
以上就是主要源代码,完整源代码稍后上传
下篇文章将写一下如何将写好的抽号器打包为.exe应用程序。
转载于:https://www.cnblogs.com/tanjiawei/p/9313702.html
Python学习随记 ————随机抽号器(一)相关推荐
- 基于C#实现的简单的随机抽号器
由于老师需要,让我写一个随机抽号器,,就很简单的写一个,用C#写的.主要依靠random来实现一个随机数以及list可变长数组实现的. 由于项目难度不大,我就直接放代码了. using System; ...
- python随机抽号器_python 随机抽取数据
#!/usr/bin/env python # -*- coding: UTF-8 -*- ''' @author: carry @contact: 864140438@qq.com @file: m ...
- 基于Python pyqt5的随机抽号机源代码 ,可设置抽号器的人数及刷新间隔
基于Python pyqt5的随机抽号机源代码 ,可设置抽号器的人数及刷新间隔,直接运行main.py即可 完整代码下载地址: pyqt5的随机抽号机源代码 main.py import sys fr ...
- 用MFC写一个随机抽号的软件(VS2013)
自学了C++一段时间了,感觉还是什么都不会,所以就想开始找点东西来写,才好学习东西. 所以就突然想到写一个随机抽号的软件. 刚开始写好的时候生成的文件在其他电脑执行不了,所以我就查了一下,在MFC的使 ...
- java 随机点名器和随机摇号器
java实训20210810 java 随机点名器 和 随机摇号器 随机点名器,即在全班同学中随机的打印出一名同学名字. 要做的随机点名器,它具备以下3个内容: 存储所有同学姓名 总览全班同学 ...
- python实现雪花动态图_如何通过雪花算法用Python实现一个简单的发号器
实现一个简单的发号器 根据snowflake算法的原理实现一个简单的发号器,产生不重复.自增的id. 1.snowflake算法的简单描述 这里的snowflake算法是用二进制的,有64位.其中41 ...
- C语言学生随机抽号演讲计分系统
C语言学生随机抽号演讲计分系统 6.学生随机抽号演讲计分系统(★★★★) 设计一款用于课程大作业检查或比赛计分的软件,基本功能: (1)设置本课程的学生总数 (2)根据本次参与的学生总数,随机抽取一个 ...
- 用JavaScript制作随机选号器
这是用JS来实现的随机选号器,从0到99个数中,随机生成一个整数. HTML代码 <!DOCTYPE html> <html><head><meta char ...
- 小蜘蛛 七乐彩随机选号器 官网
Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...
最新文章
- mysql主从以及读写分离(科普)
- 关于流水线中剪裁的疑问
- DNS 与BIND(第五版)
- Spring @Bean和PropertyPlaceHolderConfigurer
- idea代码样式模板_阿里p3c(代码规范,eclipse插件、模版,idea插件)
- “先粗后精”的实例分割,BPR:使用Crop-then-Refine的性能提高方法
- 在OLT上查看SLAN
- 竞态条件的赋值_Go 译文之竞态检测器 race
- 感情诉求的微博营销,基金公司也玩转微博营销
- 【蓝桥杯】~C语言数组排序
- 戴维斯分校 计算机硕士,2017年美国加州大学戴维斯分校研究生申请之计算机......
- 《C语言及程序设计》实践参考——定期存款利息计算器
- //css 层叠样式表(Cascading Style Sheets)
- 科学研究是有闲人群的玩艺———读爱因斯坦的短文有感
- eclipse中的图片路径 image
- java单例模式的应用场景_java项目中单列模式适用于什么场景?
- java短信登录_JAVA短信验证登录
- 配置服务器映射时提示接口地址不支持UNR
- 节点中心性:度中心性、特征向量中心性、Katz中心性、介数中心性
- 【ug903】Xilinx XDC约束的序(Order)
热门文章
- wma转mp3怎么弄_WMA格式如何转换成MP3格式
- win7系统一键还原功能怎么进行禁用教学分享
- 如何快速的向数据库中插入已知的1000万条数据
- 中国最早的计算机课程,寻找中国计算机历史
- 嵌入式linux设计报告,[嵌入式linux课程设计报告.doc
- 高通820A在5G时代来临的表现
- 转载 揭穿号称内存占用极低的软件的诡计
- 不动产登记中心计算机岗位,武汉市不动产登记中心属事业单位2019年招聘人员岗位一览表...
- Python的回溯算法
- CentOS 7 安装Google Chrome