当前位置: 首页 > news >正文

网站课程建设申报书wordpress 4.9 优化

网站课程建设申报书,wordpress 4.9 优化,商务网站建设试题,php网站开发实例教程思考题前言 博主有一个非常漂亮的老师朋友#x1f60d;。最近#xff0c;她急需一个能够实现随机点名的小程序#xff0c;而博主正好擅长这方面的技术#x1f90f;。所以#xff0c;今天博主决定为她制作一个专门用于点名的小程序#x1f4aa;。 博主在美女老师面前吹完牛皮之…前言 博主有一个非常漂亮的老师朋友。最近她急需一个能够实现随机点名的小程序而博主正好擅长这方面的技术。所以今天博主决定为她制作一个专门用于点名的小程序。 博主在美女老师面前吹完牛皮之后当场打开 Python引入 random 库直接返回了一个随机整数值。 美女老师一看怒道“你这做的什么东西”‍♀️裤裤的就给了博主两个大嘴巴子️。 博主回去后痛定思痛决定使用 Python 的 tkinter 库做一个 GUI 界面的点名程序重新在美女老师面前找回面子。 最终程序部分效果如下所示 数据分析 当过老师的都知道一个班级会有一本花名册既然是点名小程序那么肯定是需要学生的姓名的为了防止班上有重名的同学一般还会带上学号。 通常来说花名册会使用 Excel 表格进行存储因此这里引入 pandas 库进行读取需要先安装 pandas 库 pip install pandas pip install openpyxl 接下来以下图的数据 demo.xlsx 为例进行分析与代码实现 1、先读取 Excel 中的数据 import pandas as pd pd.read_excel(demo.xlsx) 运行结果 2、将整体数据转换成迭代数据 df pd.read_excel(demo.xlsx) for idx, row in df.iterrows():print(row) 运行结果 3、获取每一行的 “序号” 值与 “姓名” 值 for idx, row in df.iterrows():print(f{row[序号]} {row[姓名]}) 运行结果 这里可能会出现这么一个问题传进来的 Excel 表中没有 “序号” 或者 “姓名” 的列名那么按照我们的逻辑不符合我们模板要求的 Excel我们不应该让他继续执行下去所以这里使用 assert 进行判断 columns df.columns.values.tolist() assert 序号 in columns, 需要一个名为 “序号” 的列表 assert 姓名 in columns, 需要一个名为 “姓名” 的列表 上述代码中的 df.columns.values.tolist() 是获取当前读取的 Excel 表的所有列表名称这里的运行结果就是 [序号, 班级, 姓名, ...]。 整合上述代码 def deal_data(filepath):df pd.read_excel(filepath)columns df.columns.values.tolist()assert 序号 in columns, 需要一个名为 “序号” 的列表assert 姓名 in columns, 需要一个名为 “姓名” 的列表return [f{row[序号]} {row[姓名]} for idx, row in df.iterrows()] 构建界面 我们使用 tkinter 来构建可视化界面引入 tkinter 库 import tkinter as tk 接下来我们就开始构建 GUI 界面了。 1、初始化一个窗口 window tk.Tk() window.mainloop() 运行结果 2、创建文字显示区域 var tk.StringVar(value即 将 开 始) show_label tk.Label(window, textvariablevar) show_label.pack() 在上述代码中通过 tk.StringVar 方法创建一个字符串变量 var并将其与标签对象 show_label 进行绑定然后使用 pack() 方法将该标签放置在窗口中以便显示在界面上。 运行结果 3、创建 “开始” 与 “结束” 按钮 btn_start tk.Button(window, text开始) btn_start.pack()btn_end tk.Button(window, text结束) btn_end.pack() 运行结果 4、实现数据滚动功能 data [f{row[序号]} {row[姓名]} for idx, row in df.iterrows()]def lottery_roll(string: tk.StringVar):string.set(random.choice(data))window.after(50, lottery_roll, string) 在上述代码中data 数据来自于读取 Excel 表格lottery_roll 实现了数据滚动效果其原理是通过 string.set(random.choice(data)) 这行代码从 data 中随机选择一个元素并将其设置为 string 的值然后使用 window.after() 方法在50毫秒之后继续调用 lottery_roll 函数再次随机选择数据并更新界面。 最后将 lottery_roll 函数绑定到 “开始” 按钮上 btn_start tk.Button(window, text开始, commandlambda: lottery_roll(var)) 运行结果 5、实现滚动停止功能 前面我们已经实现了数据滚动但我们还要让滚动停止得出最后的结果那么我们应该如何下手呢 当然是从 window.after() 方法入手因为它是实现数据滚动的关键自然也是滚动停止的关键我们可以设置一个标志位来判断是否还要继续执行 window.after() 方法代码如下所示 running Falsedef lottery_start(string):if running:returnrunning Truelottery_roll(string)def lottery_end():if running:running False 同时lottery_roll 也作出相应的修改代码如下所示 def lottery_roll(string: tk.StringVar):string.set(random.choice(data))if running:window.after(50, lottery_roll, string) 运行结果 大家可能发现程序运行时程序并不在屏幕中间这对一些用户来说可能是不好的使用体验因此我们可以在初始化的时候进行设置代码如下所示 def center_window(root: tk.Tk, w, h):# 获取屏幕 宽、高ws root.winfo_screenwidth()hs root.winfo_screenheight()# 计算 x, y 位置x (ws / 2) - (w / 2)y (hs / 2) - (h / 2)root.geometry(%dx%d%d%d % (w, h, x, y)) 整合上述代码 def center_window(root: tk.Tk, w, h):# 获取屏幕 宽、高ws root.winfo_screenwidth()hs root.winfo_screenheight()# 计算 x, y 位置x (ws / 2) - (w / 2)y (hs / 2) - (h / 2)root.geometry(%dx%d%d%d % (w, h, x, y))class CallWindow(tk.Tk):def __init__(self, data):super().__init__()self.data dataself.running Falseself.title(无奖问答)center_window(self, 405, 300)self.var tk.StringVar(value即 将 开 始)self.show_label tk.Label(self,textvariableself.var,)self.show_label.pack()self.btn_start tk.Button(self,text开始,commandlambda: self.lottery_start(self.var),)self.btn_start.pack()self.btn_end tk.Button(self,text结束,commandlambda: self.lottery_end(),)self.btn_end.pack()def lottery_roll(self, string):string.set(random.choice(self.data))if self.running:self.after(50, self.lottery_roll, string)def lottery_start(self, string):if self.running:returnself.running Trueself.lottery_roll(string)def lottery_end(self):if self.running:self.running False 优化进阶 在上述功能实现中我们在代码里写死了文件路径这对于程序的广泛适用性是很不友好的因此我们需要实现灵活获取文件并解析数据的功能。 1、初始化窗口 window tk.Tk() 2、创建文件路径输入框 label_filepath tk.Label(window, text文件路径) label_filepath.grid(row0, column0, padx(10, 0), pady10) entry_filepath tk.Entry(window) entry_filepath.grid(row0, column1, columnspan2, padx(0, 10), ipadx60) 运行结果 3、创建 “上传文件” 和 “解析数据” 按钮 btn_upload_file tk.Button(window, text上传文件) btn_upload_file.grid(row2, column1, pady10, ipadx30) btn_parse_data tk.Button(window, text解析数据) btn_parse_data.grid(row2, column2, ipadx30) 运行结果 4、实现文件上传功能 from tkinter import filedialogdef upload_file(entry: tk.Entry):filepath filedialog.askopenfilename(title请选择一个文件, filetypes[(Excel, .xls .xlsx)])entry.delete(0, tk.END)entry.insert(0, filepath) 在上述代码中filedialog.askopenfilename() 方法弹出一个文件选择对话框供用户选择文件并且通过 filetypes 指定了可以选择的文件类型为 Excel 文件.xls 或 .xlsx 文件。 运行结果 5、实现数据解析功能 读取 Excel 的功能实现参照前面讲过的 deal_data() 方法然后在数据成功解析之后销毁当前界面跳转至点名界面。 同时还需要对解析过程中的异常进行捕获如果出现异常则提示用户相关信息。 def parse_data(root, entry_filepath):try:data deal_data(entry_filepath.get())root.destroy()CallWindow(data)except Exception as e:from tkinter.messagebox import showwarningshowwarning(警告, f解析数据失败\n{e}) 运行结果 整合上述代码 class UploadWindow(tk.Tk):def __init__(self):super().__init__()self.title(上传)center_window(self, 350, 100)self.label_filepath tk.Label(self, text文件路径)self.label_filepath.grid(row0, column0, padx(10, 0), pady10)self.entry_filepath tk.Entry(self)self.entry_filepath.grid(row0, column1, columnspan2, padx(0, 10), ipadx60)self.btn_upload_file tk.Button(self, text上传文件, commandself.upload_file)self.btn_upload_file.grid(row2, column1, pady10, ipadx30)self.btn_parse_data tk.Button(self, text解析数据, commandself.parse_data)self.btn_parse_data.grid(row2, column2, ipadx30)def upload_file(self):filepath filedialog.askopenfilename(title请选择一个文件, filetypes[(Excel, .xls .xlsx)])self.entry_filepath.delete(0, tk.END)self.entry_filepath.insert(0, filepath)def parse_data(self):try:data deal_data(self.entry_filepath.get())self.destroy()CallWindow(data)except Exception as e:from tkinter.messagebox import showwarningshowwarning(警告, f解析数据失败\n{e}) 后记 在本文中我们一起学习了如何利用 Python 中的 tkinter 模块构建一个简单的点名小程序。通过数据分析、构建界面和优化进阶这三个部分我们逐步完成了这个项目。从中我们不仅掌握了 Python GUI 编程的基础知识还了解了如何优化程序以提高用户体验。 以上就是 帮美女老师做一个点名小程序Python tkinter 的所有内容了希望本篇博文对大家有所帮助欢迎大家持续关注我的博客一起分享学习和成长的乐趣✨ 如果你对Python感兴趣想要学习python这里给大家分享一份Python全套学习资料都是我自己学习时整理的希望可以帮到你一起加油 有需要的小伙伴可以V扫描下方二维码免费领取 ​ 1️⃣零基础入门 ① 学习路线 对于从来没有接触过Python的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。 ② 路线对应学习视频 还有很多适合0基础入门的学习视频有了这些视频轻轻松松上手Python~ ③练习题 每节视频课后都有对应的练习题哦可以检验学习成果哈哈 2️⃣国内外Python书籍、文档 ① 文档和书籍资料 3️⃣Python工具包项目源码合集 ①Python工具包 学习Python常用的开发软件都在这里了每个都有详细的安装教程保证你可以安装成功哦 ②Python实战案例 光学理论是没用的要学会跟着一起敲代码动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。100实战案例源码等你来拿 ③Python小游戏源码 如果觉得上面的实战案例有点枯燥可以试试自己用Python编写小游戏让你的学习过程中增添一点趣味 4️⃣Python面试题 我们学会了Python之后有了技能就可以出去找工作啦下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂并且有阿里大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。 上述所有资料 ⚡️ 朋友们如果有需要的可以扫描下方二维码免费领取 ​
http://www.dnsts.com.cn/news/29171.html

相关文章:

  • 网站建设公司现在还挣钱吗西安编程培训机构
  • wdcp 网站备份自发购卡网站在吗做
  • wordpress 文章 来源seo还能赚钱吗
  • 网站开发与运维收费明细网络推广沈阳
  • 网站建设培训中心网站开发的流程是怎样的
  • 本地唐山网站建设广州网站建设信科公司
  • 有哪些网站可以做家教百度联盟注册
  • 怎样做淘宝的导购网站如何制作简单的网站
  • 枫叶的网站建设博客求网页设计与网站建设
  • 做户外的网站丁香花在线视频观看免费
  • 做背景网站网站代码图片
  • 网站搭建徐州百度网络大连权威发布网站
  • 网站的ftp管理权限是什么意思厦门景观绿环建设行业协会网站
  • 竞价网站做招商加盟可以不备案吗h5网站建设的具体内容
  • 网站制作费网站空间站
  • 廊坊网站制作网页wordpress 仪表板主题
  • 南京网站优化推广东莞网站建设选择菲凡网络
  • weex做网站外贸网店
  • 哪个网站可以做创意短视频网站网站制作九江
  • 织梦网站入侵网站屏蔽省份
  • 沈阳大熊网站建设制作番禺论坛网站建设
  • 南通做网站的公司简述网络营销的特点
  • 建筑公司网站md0095设计风格移动端网站怎么做外链
  • 简单的企业网站php开发外贸客户的免费平台
  • 网易云音乐网站开发介绍浙江住房和城乡建设厅网站
  • 晋江企业网站制作视觉上体验的网站
  • 做擦边球视频网站wordpress 小云app
  • 网站后台模版创建一个网址需要多少钱
  • 网站开发的人怎么样家具品牌网站
  • 帮做试卷的网站汽车行业市场分析那个网站做的好