以后别再认字认半边啦,DIY注音小工具,让你以后不再出糗
以后别再认字认半边啦
“不会念的字读半边”和“不会做的题全蒙C”,这是学生时代的必备的两大求生技能。
只要没傻到把“魑魅魍魉”猜成“鬼鬼鬼鬼”,读另一半“离未网两”,就有50%的正确几率。
复旦教授陈果曾把“耄耋之年”读成了“毛至”之年,在社交网络被刷了屏。客观地说,人非圣贤,孰能无过;哪怕是常见的知识,我们也可能存在盲点,这不少见。更何况,像陈老师这种“读半边”的习惯,也许很多人都有哦。
读字读半边,经常被运用到影视作品里,当成搞笑的桥段。
这波操作真是令人窒息。故今天带大家来做一个汉字注音的小工具,有了这个DIY工具,妈妈再也不用担心我出糗了
理清思路
利用 tkinter 模块开发用户交互界面
界面设计
本工具界面比较简单,一共就用到了三种类型的控件-Label、Button、Text。共同组成用户界面的输入模块、执行按钮、输出模块三个部分
利用 pypinyin 模块为汉字注音
pypinyin 简单介绍
Python 中提供了汉字转拼音的库,名字叫做 PyPinyin,可以用于汉字注音、排序、检索等等场合
安装
使用pip进行安装,安装命令如下:pip install pypinyin
特性
根据词组智能匹配最正确的拼音。
支持多音字。
简单的繁体支持, 注音支持。
支持多种不同拼音/注音风格。
简单示例
用pyinstaller 将代码打包成.exe可执行程序
为了能让大家直接在window系统上运行我们这个小工具,我用pyinstaller将编写的代码打包成了exe工具,这样就可以直接在电脑上双击使用了,非常便利
完整代码及运行效果
完整代码如下
#!/usr/bin/python3 # -*- coding: utf-8 -*- # @Author : 陈龙 # @公众号 : Python欢乐时光 # @Date : 2021/07/28 22:16 # @Software : PyCharm # @Version : Python 3.7.3from tkinter import * from pypinyin import pinyinclass ChinesePhoneticNotation:def __init__(self, win):self.win = winself.text_input = Noneself.text_output = Nonedef creat_window(self):# 设置标题self.win.title('汉字注音 - 微信公众号 > Python欢乐时光')# 设置窗口大小width = 780height = 800# 获取屏幕尺寸以计算布局参数,使窗口居屏幕中央screenwidth = self.win.winfo_screenwidth()screenheight = self.win.winfo_screenheight()alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)self.win.geometry(alignstr)# 设置窗口是否可变长、宽,True:可变,False:不可变self.win.resizable(width=False, height=False)def creat_title(self):# 创建 Label 标签控件 及 控件布局label = Label(self.win, bg="green",text='欢迎使用 Python欢乐时光 注音小工具',font=('隶书', 15, 'bold underline'))label.grid(row=0, columnspan=2, pady=10)def creat_input_text(self):label = Label(self.win, text='待注音汉字', justify=LEFT, bg="lightyellow")label.grid(row=1, column=0, padx=20, sticky=W)# 创建 汉字 Text 文本控件 及 控件布局self.text_input = Text(self.win, width=100)self.text_input.grid(row=2, column=0, padx=20, pady=5)# 创建 汉字滚动条 及 汉字滚动条关联scroll_hanzi = Scrollbar()scroll_hanzi.grid(row=2, column=1, sticky=N + S + W)scroll_hanzi.config(command=self.text_input.yview)self.text_input.config(yscrollcommand=scroll_hanzi.set)def creat_button(self):# 创建 注音按钮 及 按钮布局button = Button(self.win, width=20, text='开始注音', command=self.start_phonetic)button.grid(row=3, columnspan=2, pady=10)def creat_output_text(self):label = Label(self.win, text='注音结果', justify=LEFT, bg="lightyellow")label.grid(row=4, column=0, padx=20, sticky=W)# 创建 注音 Text 文本控件 及 控件布局self.text_output = Text(self.win, width=100)self.text_output.grid(row=5, column=0, padx=20, pady=5)# 创建 注音滚动条 及 注音滚动条关联scroll_pinyin = Scrollbar()scroll_pinyin.grid(row=5, column=1, sticky=N + S + W)scroll_pinyin.config(command=self.text_output.yview)self.text_output.config(yscrollcommand=scroll_pinyin.set)def start_phonetic(self):result_info = ""self.text_output.delete(1.0, END) # 清空output文本框input_info = self.text_input.get(1.0, END).split('\n') # 获取用户输入for line in input_info:if not line:continue# 利用正则匹配字符串中的所有中文字符, '[\u4e00-\u9fa5]' 匹配中文tmp = re.findall(r'[\u4e00-\u9fa5]', line.strip())chinese_characters = ''.join(tmp)result_info += ' '.join(map(lambda x:x[0].ljust(6), pinyin(chinese_characters))) + '\n'result_info += ' '.join(map(lambda x:x.ljust(5), chinese_characters)) + '\n'self.text_output.insert(1.0, result_info)def main():win = Tk()obj_tool = ChinesePhoneticNotation(win)obj_tool.creat_window()obj_tool.creat_title()obj_tool.creat_input_text()obj_tool.creat_button()obj_tool.creat_output_text()# 进入消息循环win.mainloop()if __name__ == '__main__':main()
工具运行效果
待注音汉字使用的是一首歌的歌词 - 《生僻字》,感觉这首歌的旋律还不错,喜欢听歌的朋友可以去搜索一下这首歌,看看里面的歌词你能认识多少,哈哈
结尾
如果觉得这篇文章还不错的话,欢迎点击文章右下角的“在看”, 期待您关注我的公众号 Python欢乐时光,转发给你身边有需要的朋友们。另外,本篇文章中涉及的代码及可执行exe我都打包上传至百度云,公众号下方回复 注音 获取下载地址。谢谢大家!
Python欢乐时光
大家一起学Python
8篇原创内容
公众号
以后别再认字认半边啦,DIY注音小工具,让你以后不再出糗相关推荐
- java 修改源码_再谈给应用程序diy启动画面和java源代码补丁修改
再谈给应用程序diy启动画面和java源代码补丁修改 2006-8-21 16:18 6365 再谈给应用程序diy启动画面和java源代码补丁修改 2006-8-21 16:18 6365 搞diy ...
- 开发商微信选房后不退认筹金_新楼盘开盘的“认筹”和“认购”,劝您看懂后再去认!...
各大开发商,包括运城在内的,他们在新楼盘开盘时都会出现"认筹"."认购"字样,可是,您具体清楚是什么意思吗?建议您了解清楚以后再决定认不认-- 认筹: 认筹是开 ...
- 别再Ctrl+V啦!用Python这个工具30分钟帮你干完一天的工作!
而对这些任务的处理方式,可以体现出你的工作态度和工作潜力. 有的人不断寻找最优解,最终将自己从这些事项中解脱出来:有些人还是习惯用老方法,在简单的复制粘贴中消耗时光,让人唏嘘. 前段时间,朋友娜娜跟我 ...
- 用Python写了个小工具,再复杂的文件夹,分分钟帮你整理!
糟透了 我承认我不是一个爱整理桌面的人,因为我觉得乱糟糟的桌面,反而容易找到文件. 哈哈,可是最近桌面实在是太乱了,自己都看不下去了,几乎占满了整个屏幕.虽然一键整理桌面的软件很多,但是对于其他路径下 ...
- 日常生活中总结出来的DIY生活小窍门
5-Minute Crafts 出品 日常生活中总结出来的DIY生活小窍门 化妆 height="498" width="510" src="http ...
- 家用使用计算机组装,不能再简单了!家用电脑DIY组装实操
[天极网DIY硬件频道][天极网硬件频道]近期有网友对DIY组装电脑比较感兴趣,因为自从智能手机和平板电脑横行霸道之后,家中的PC电脑被使用的时间变少了许多,可是偶尔有工作需求或是别有任务等,所以大家 ...
- 老司机带你飞——DIY桌面小电视
桌面小电视 本期福利 活动规则: [1]添加客服微信(xutoubee)领取作品开源资料 [2]转发该篇文章到朋友圈,并停留30分钟,凭截图联系客服微信,进群参与抽奖(免费送作品) 活动截止时 ...
- 不要再用arxiv链接了!为了让论文引用更规范,上交毕业生、南加州大学华人博士创建了一个小工具...
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨魔王 编辑丨机器之心 只需两步,将文献的 arXiv 信息转换为正式来源信息. 伴随着预印本平台 ...
- RedOffice教你DIY环保小日历
新一代的RedOffice 办公软件提供了丰富的模板资源,它可以美化并使您的文档脱颖而出.不过今天我们不是要美化文档,而是教您一个巧用模板的方法:制作环保小日历. 您可以在RedOffice 办公软件 ...
最新文章
- AI一分钟 | 马斯克:特斯拉内部有人故意搞破坏;亚马逊推出酒店定制版Alexa
- YunTable开发日记(3) – BigTable的数据模型和调用接口 (转载)
- linux查看进程和线程的命令
- centos安装mysql5.7.26_Centos安装mysql5.7.26
- idea java 快捷键_图示Javahtml5开发中IDEA的一些常用默认快捷键
- android logo:内核、android开机动画
- matlab gui编写计算器,怎样用MATLAB中的GUI做一个简单计算器
- TortoiseGit 添加ssh key
- Python之集合(综合练习)
- IntelliJ Save Action
- Android中ListView下拉刷新的实现
- 小学语文三年级阅读理解专项练习附答案~水上飞机
- 2019最实用的8种精准微信引流方法教程
- Android基础知识点学习总结
- DocArray 0.21.0版本发布!新增OpenSearch后端存储,支持Redis后端存储的多语言文本搜索!...
- Chronometer实现计时器 开始、暂停、停止功能
- PlayFair密码原理、代码
- 效果超好的自制美白面膜大汇总 - 健康程序员,至尚生活!
- Python学习笔记 - 探索while无限迭代循环
- 青龙面板获取京东ck的新老方法