目不识丁的我使用Python编写汉字注音小工具

【Python-tkinter】拼音输入方法——小学拼音练习题 文章目录前言一、拼音练习题功能需求二、汉字拼音库的保存方式1.拼音字符的存储方式2.汉字拼音库设计三、键盘输入拼音方法及具体实现1.键盘输入拼音方法设计2.键盘输入事件处理四、后续扩展总结 前言   之前学习python的时候做了几个小程序,现在看起来还有不少可以将来用得上的地方,因此记录下来以备使用。   当时正好要鼓励小学生学习,所以做的都是练习题式的程序,包含拼音、汉字等等,本篇先是拼音练习。 一、拼音练习题功能需求   本项目用于小学生学习汉字、拼音。通过认读汉字,标拼音的方式,练习课堂所学。本 阅读详情
一万点暴击伤害

人懒起来太可怕了,放了个十一充分激发了我的惰性。然后公众号就这么停了半个月,好惭愧…
新学期儿子的幼儿园上线了APP,每天作业通过app布置后,家长需要陪着孩子学习,并上传视频才算完成作业。来看看今天的课后作业吧:
今日作业

看到最后的千字文,我就瞬间崩溃了,别说教孩子,我自己都一堆字不认识。老婆就是因为很多字需要手机查嫌麻烦,才把辅导孩子的任务甩给了我。平时我们中英文翻译的时候,经常使用百度翻译,那么今天我们使用Python来做一个自动注音的GUI工具吧!

Python的拼音模块

Python的模块库API,每次进去习惯第一动作,就是右键翻译为中文。可Python的拼音模块不需要这么做,因为涉及拼音等模块肯定和中文有关系,文档自然是中文的喽。
那么Python的拼音模块是什么? pypinyin

  • 特性
    • 根据词组智能匹配最正确的拼音。
    • 支持多音字。
    • 简单的繁体支持, 注音支持。
    • 支持多种不同拼音/注音风格。
  • 安装
    pip install pypinyin
  • 使用示例
>>> from pypinyin import pinyin, lazy_pinyin, Style
>>> pinyin('中心')
[['zhōng'], ['xīn']]
>>> pinyin('中心', heteronym=True)  # 启用多音字模式
[['zhōng', 'zhòng'], ['xīn']]
>>> pinyin('中心', style=Style.FIRST_LETTER)  # 设置拼音风格
[['z'], ['x']]
>>> pinyin('中心', style=Style.TONE2, heteronym=True)
[['zho1ng', 'zho4ng'], ['xi1n']]
>>> pinyin('中心', style=Style.BOPOMOFO)  # 注音风格
[['ㄓㄨㄥ'], ['ㄒㄧㄣ']]
>>> pinyin('中心', style=Style.CYRILLIC)  # 俄语字母风格
[['чжун1'], ['синь1']]
>>> lazy_pinyin('中心')  # 不考虑多音字的情况
['zhong', 'xin']
# Python 3(Python 2 下把 '中心' 替换为 u'中心' 即可):
tkinter的宽与高
    from tkinter import *

    def center_window(width, height):
        screenwidth = root.winfo_screenwidth()
        screenheight = root.winfo_screenheight()
        size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
        root.geometry(size)


    root = Tk()
    center_window(700, 700)
    root.mainloop()

上面是一个tkinter设置程序居中的简单代码,其中700 700为宽高的px值,在这里没什么问题,但宽高一直都是px值么?
答案是否定的!
Text(frame, width=80, height=20, borderwidth=2, font=('黑体', '11'))
当我们使用Text文本标签时,width和height代表的是容纳字符的长度与高度。这里width代表设置80个字符的宽度,height为20个字符的高度。

程序实现

让我们先来看看实现效果吧:
程序实现效果

界面设计

GUI的界面比较简单,只需要有一个用户文本输入,翻译按钮,结果输出即可。
可以看到说明、待注音汉字、执行结果都通过**LabelFrame**进行包裹,主要是为了美观。

整体代码
# -*- coding: utf-8 -*-
# @Author   : 王翔
# @WeChat   : King_Uranus
# @公众号    : 清风Python
# @GitHub   : https://github.com/BreezePython
# @Date     : 2019/10/10 23:19
# @Software : PyCharm
# @version  :Python 3.7.3
# @File     : WordsToPinyin.py


from tkinter import *
from pypinyin import pinyin


class WordsToPinyin:
    def __init__(self, master=None):
        self.root = master
        self.user_input = None
        self.translation = None

    def create_frame(self, text_info):
        frame = LabelFrame(self.root, text=text_info, font=('黑体', '11'), fg='red')
        frame.grid(padx=10, pady=10, sticky=NSEW)
        return frame

    def notice(self):
        frame = self.create_frame('说明')
        info = "欢迎使用【清风Python】汉语注音工具\n请将待注音的汉字或句子,填写在下方的文本框内"
        note = Label(frame, text=info, justify=LEFT, font=('黑体', '11'))
        note.grid(sticky=EW)

    def user_words(self):
        frame = self.create_frame('待注音汉字')
        self.user_input = Text(frame, width=80, height=10, borderwidth=2, font=('黑体', '11'))
        self.user_input.grid(padx=10, pady=5)

    @staticmethod
    def split_words(words):
        word_list = ""
        tmp = ""
        for string in words:
            if len(bytes(string, 'utf-8')) == 3 and len(string) == 1:
                if tmp != '':
                    word_list += tmp.ljust(6)
                    tmp = ""
                word_list += string.ljust(5)
            else:
                tmp += string
        return word_list

    def translate(self):
        self.translation.delete(0.0, END)
        total_info = ''
        info = self.user_input.get(1.0, END).split('\n')
        for line in info:
            if not line:
                continue
            a = self.split_words(line)
            total_info += ''.join(map(lambda x: x[0].ljust(6), pinyin(line))) + '\n'
            total_info += a + '\n'

        self.translation.insert(1.0, total_info)

    def start_translate(self):
        b = Button(self.root, text='开始注音', width=15, command=self.translate)
        b.grid()

    def result_info(self):
        frame = self.create_frame('执行结果')
        self.translation = Text(frame, width=80, height=20, borderwidth=2, font=('黑体', '11'))
        self.translation.grid(padx=10, pady=5)


if __name__ == '__main__':
    def center_window(width, height):
        screenwidth = root.winfo_screenwidth()
        screenheight = root.winfo_screenheight()
        size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
        root.geometry(size)


    root = Tk()
    center_window(700, 700)
    root.resizable(width=False, height=False)
    root.title('清风Python--汉字注音工具')
    Main = WordsToPinyin(root)
    Main.notice()
    Main.user_words()
    Main.start_translate()
    Main.result_info()
    root.mainloop()

程序打包

为了之后使用方便,我们可以通过pyinstaller将小程序打包成exe工具,这样就可以在电脑上直接使用了!
程序打包

The End

OK,今天的内容就到这里,如果觉得内容对你有所帮助,欢迎点击文章右下角的“在看”。
公众号回复拼音即可获取整体代码及打包好的exe工具。
当然如果你是Pythoner欢迎访问我的github下载:https://github.com/BreezePython
期待你关注我的公众号 清风Python,如果觉得不错,希望能动动手指转发给你身边的朋友们。
希望每周一至五清晨的7点10分,都能让清风Python的知识文章叫醒大家!谢谢……
清风Python

往期文章精选

Python为微信头像任意添加装饰!
如何把图片变得炫酷多彩,Python教你这样实现!
Android手机打造你的Python&Java开发工具!
来看看Python炫酷的颜色输出与进度条打印
Python开发英语单词自测工具,助你逆袭单词王!
使用Python开发小说下载器,不再为下载小说而发愁
使用Python编写打字训练小程序
Python开发GUI工具介绍,实战:将图片转化为素描画!
Python一秒搭建ftp服务器,帮助你在局域网共享文件
将Android手机打造成你的python开发者桌面
Flask开发VIP版 HttpServer
python让高清素材图片占满你的硬盘!

python读写汉字转成中文 python读取Excel表格的文件,并且把中文转换成英文,然后首字母大写并拼接成@Anqing|安庆|36这种格式,写入txt文件中 立即下载

相关推荐

用python写的汉字转拼音的小程序

用python写的汉字转拼音的小程序,适合转换人名等,还是有点用处的

Python——jieba优秀的中文分词库(基础知识+实例)

优秀的中文分词库——jieba库

好好读书 10万+

QEMU pcie config空间访问机制

而pci_host_conf/data_le_ops的定义是在hw/pci/pci-host.c里,对于0xCF8端口的处理,因为是地址选通,所以只需要在write的时候记录、read的时候返回记录的值即可。而pci_host_config_write/read_common接口,在前256Bconfig空间的模拟中,也同样是会调用这个接口,所以后续的处理都是一样的。这是真实的硬件设计,而对于QEMU+KVM的虚机场景,显然是要基于硬件实现和虚拟化的需求设计虚机访问config空间的完整流程。

leiyanjie8995的博客 1953

Python 将拼音转换成汉字

利用Pinyin2Hanzi 可以将拼音转换为汉字,可以作为拼音输入法的转换引擎:示例:def pinyin_2_hanzi(pinyinList): from Pinyin2Hanzi import DefaultDagParams from Pinyin2Hanzi import dag dagParams = DefaultDagParams() # 10个候选值

大泡泡的专栏 1万+

脆弱的冗余:链路聚合(LACP)中单条链路故障引发的网络震荡

show etherchannel summary# 查看聚合组中所有端口的标志位,健康状态应为 ‘P’ (Port-channel) 或 ‘SU’(Stand-up)。本次故障的核心教训是:网络系统对“部分故障”的容忍度和自愈能力,远比应对“完全故障”要重要和复杂得多。3.加强监控:部署网管系统,监控聚合端口的包错误计数、LACP状态变化频率,并设置阈值告警。标签: #链路聚合 #LACP故障 #网络冗余 #排障案例 #网络高可用性。修复链路:更换光模块、清洁光纤接口、检查物理线路。

danyth的博客 1983

ROS2仿真抓取分拣案例,使用myCobot 280机械臂结合ROS2系统搭建机械分拣站

本案例展示了如何利用myCobot 280 urdf模型构建一个对象分类站,并在ROS2 jazzy中完成运动规划。

m0_71627844的博客 2126

jieba,为中文分词而生的Python库

jieba,为中文分词而生的库

weixin_43790276的博客 6931

【全部更新】2025金地杯E题山西省大学生数学建模思路代码文章教学:高速铁路牵引供电系统能耗优化

问题四将列车的运行速度与发车时间同时作为优化变量,建立联合优化模型,目标是在考虑电价机制和调度均衡性的前提下,使牵引供电系统一天内的总电费支出最小。问题三在考虑分时电价机制的基础上,基于遗传算法优化列车速度组合,使牵引供电系统一天内的总电费支出最小。然而,在实际运营中,不同时段的电价差异显著,合理安排列车的运行时间与运行速度,可有效降低系统的总电费支出。本研究聚焦于高速铁路牵引供电系统的能耗与电费优化问题,针对列车运行速度、发车时间与分时电价的综合影响,提出一系列数学模型,以实现系统能耗与电费的最小化。

xb459149247的博客 5289

Python实现语文老师默写挖空助手

一款语文老师的得力助手

jordan_wang922的博客 835

51单片机学习(5)-----蜂鸣器的介绍与使用

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计 算机、 打印机、 复印机、 报警器、 电子玩具、 汽车电子设备、 电话机、 定 时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。1.半导体三极管也称为晶体三极管,可以说它是电子电路中最重要的器件。三极管顾名思义具有三个电极。二极管是由一个PN结构成的,而三极管由两个PN结构成,共用的一个电极成为三极管的基极(用字母b表示)。其他的两个电极成为集电极(用字母c表示)和发射极(用字母e表示)。

2302_80260350的博客 1万+

一分钟了解 “提示词工程”、“上下文工程”、“驾驭工程”

在大模型刚刚进入大众视野的初期,开发者面临的最大挑战是如何让模型听懂人类的指令。这一阶段被称为提示词工程时代。其核心思想非常直观:通过精心设计输入的文本提示,引导模型输出符合预期的结果。这一时期的开发者更像是“提示词巫师”,他们热衷于寻找所谓的“魔法咒语”。典型的技巧包括角色设定、思维链、少样本学习以及输出格式约束。例如,仅仅在问题前加上一句“请一步步思考”,模型的推理能力往往就能得到显著提升。然而,随着应用场景的复杂化,提示词工程的局限性逐渐暴露。

h a 6 6 6 c k 为 你解决复杂难题! 572

用python写汉字_目不识丁的我使用Python编写汉字注音小工具

一万点暴击伤害人懒起来太可怕了,放了个十一充分激发了我的惰性。然后公众号就这么停了半个月,好惭愧…新学期儿子的幼儿园上线了APP,每天作业通过app布置后,家长需要陪着孩子学习,并上传视频才算完成作业。来看看今天的课后作业吧:看到最后的千字文,我就瞬间崩溃了,别说教孩子,我自己都一堆字不认识。老婆就是因为很多字需要手机查嫌麻烦,才把辅导孩子的任务甩给了我。平时我们中英文翻译的时候,经常使用百度翻译...

weixin_39808953的博客 375

3、利用预训练卷积神经网络进行特征提取

本文介绍了如何使用预训练的卷积神经网络(如VGG16)进行图像特征提取,并将提取的特征存储在HDF5数据集中,以便后续用于机器学习模型的训练。文章详细阐述了特征提取的原理、HDF5数据格式的优势、HDF5DatasetWriter类的实现、特征提取流程的代码实现以及实际应用案例。通过该方法,可以在多种图像数据集上高效构建高精度的分类模型。

z2a3b4c5d的博客 116

python抽签代码,python:选房抽签小工具

1、房间号和姓名写在house_name.xls的house标签页中【注意!名字均不要改动】2、运行house.py3、当前同目录下会生成result.xls,即为结果;程序运行过程中不要打开该文件,运行完成后再打开,否则结果无法写入4、若要重新生成,重新运行house.py即可,结果会重新生成#!/usr/bin/env python# -*- coding: utf-8 -*-import o...

weixin_36316494的博客 1091

数学建模学习(121):Python实现模糊AHP(Fuzzy AHP)——从原理到实践

Python实现模糊AHP(Fuzzy AHP)

全栈川川 1542

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

分享一些最近Python刷题的经验与思考

转化学习情绪 学习Python一直都是从乐趣、兴趣出发,所以最讨厌做的事莫过于枯燥的刷题了。可公司新规定,每位员工需要在年底前完成5000分的编程答题任务,瞬间就不开心了。还好我是一个脑洞大的人,决定化愤怒为动力,想想什么能让我转化现在的情绪。然后… 我发现每道题后面有个发帖讨论的栏位,在里面可以讨论解题思路,大家互相交流。就在一瞬间灵感来了,这不是个免费的广告栏目么。我把每道题的答案发到讨论帖...

清风Python 816

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python单片机驱动点阵_用Python代码来绘制彭罗斯点阵的教程

这里是显示彭罗斯点阵的Python的脚本。是的,这是可以运行的有效Phython代码。译注:彭罗斯点阵,物理学术语。上世纪70年代英国数学家彭罗斯第一次提出了这个概念,称为彭罗斯点阵(Pen-rose tiles)。_ =\"""if!1:"e,V=1000,(0j-1)**-.2;v,S=.5/ V.real,[(0,0,4 *e,4*e*V)];w=1 ...

weixin_39632379的博客 387

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【python基础知识】16.“古诗默写题”的python实现(文件读写和编码-实操篇)

本文介绍了使用Python实现“古诗默写题”的方法,结合文件读写和编码实操进行讲解。通过简单明了的步骤,学习者可以了解到如何自动化生成和评判答案的优势。文章详细介绍了Python中的文件读写操作,包括打开、读取和写入文件的方法,并讲解了中文字符处理和编码转换的相关知识。通过学习这些知识,读者将掌握利用Python进行文件读写和编码操作的技巧,并了解如何实现“古诗默写题”。这个实例展示了Python在实际应用中的灵活性,同时加深对Python基础知识的掌握程度。

qq_41308872的博客 9800

使用python输出所有汉字的拼音hàn-zì-pīn-yīn

想在文档中自动把汉字的拼音标注上去,可是很难,用excel或者word来辅助,操作也不方便。 万能的python,加上大神写的拼音工具插件xpinyin,几行代码,就可以把所有汉字的拼音输出!极为强悍! 1、安装xpinyin库:使用【pip install xpinyin】自动安装,或者下载后手工安装(进入下载后的插件目录,运行 python setup.py install)      ...

liuzhimayi的专栏 4312

python使用海龟turtle实现绘制汉字、中文

python使用海龟turtle实现绘制汉字、中文

c1007857613的专栏 1万+

Python自动给课本文字标注拼音

环境: Ubuntu20.04,ubuntu20.04自带python版本 3.8.10,pip的版本是 20.0.2。

lanren312的博客 605

python实现简单的词形统计

用python正则表达式实现简单的词形统计 需求如下: 交流了好长时间才知道她要的是词形统计,如AA.AAB,AABB... 编码如下 import re from matplotlib import font_manager import matplotlib.pyplot as plt import numpy as np def read_file_gbk(filename): with open(filename,'r',encoding='GBK') as f: s

qq_42338771的博客 630
上一篇: 解惑Python模块学习,该如何着手操作...
下一篇: 分享一些最近Python刷题的经验与思考
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值