汉语拼音学习机(Flask,详细代码,帮助学习)

2024-01-09 07:08

本文主要是介绍汉语拼音学习机(Flask,详细代码,帮助学习),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

汉语拼音学习机

这个汉语拼音学习机的界面:
在这里插入图片描述

开发软件

Pycharm

代码如下:

import tkinter
import tkinter.scrolledtext
import tkinter.messagebox
from pypinyin.phrases_dict import phrases_dict
from pypinyin.pinyin_dict import pinyin_dictroot = tkinter.Tk()root.geometry("700x400+200+200")
root.title("汉语拼音词组学习机")
root.resizable(True,True)#在窗口上创建一个标签
(tkinter.Label(root,text='请输入要查询的内容:',anchor="e",font=("microsoft yahei",16))
.place(x=10,y=10,width=200,height=40))#用来输入查询内容的单行文本框
entrySearch = tkinter.Entry(root,font=("microsoft yahei",16))
entrySearch.place(x=220,y=10,width=180,height=40)#0表示查单字节拼音,1表示查词组
search_type = tkinter.IntVar(root,value=0)
radioPinyin = tkinter.Radiobutton(root,text='查单字拼音',variable = search_type,value=0)
radioPinyin.place(x=410,y=20,width=80,height=20)
radioPhrase = tkinter.Radiobutton(root,text='查词组',variable = search_type,value=1)
radioPhrase.place(x=500,y=20,width=60,height=20)#True表示包含词组拼音,False表示不包含词组拼音
include_pinyin = tkinter.BooleanVar(root,value=False)
checkbuttonInclude = tkinter.Checkbutton(root,variable=include_pinyin,text='包含词组拼音',onvalue=True,offvalue = False)
checkbuttonInclude.place(x=580,y=20,width=100,height=20)#创建按钮和按钮单击事件处理函数
def search():#删除多行文本框中原来的内容textContent.delete('0.0',tkinter.END)#获取并检查用户输入的带查询的内容user_input = entrySearch.get().strip()if not user_input:tkinter.messagebox.showinfo('提示','查询内容不能为空')return#查单个字的所有读音if search_type.get() ==0:if len(user_input)>1:tkinter.messagebox.showinfo('提示','只能查单个字的读音')return#查询拼音字典,如果有的话只会有一个包含所有读音的查询结果for num, pinyin in pinyin_dict.items():if chr(num) == user_input:textContent.insert(tkinter.INSERT,f'"{user_input}"的拼音有:\n{pinyin}')returnelse:tkinter.messagebox.showinfo('抱歉','你太厉害了,我都不认识这个字')#查词组elif search_type.get()==1:#是否有查询结果flag = Falsefor phrase,pinyin in phrases_dict.items():#用户输入的字符串不作为整体对待,每个字单独处理#查询同时包含每个字的词组if all(map(phrase.count,user_input)):#是否输出词组的拼音if include_pinyin.get():msg = f'{phrase}:{pinyin}\n'else:msg = f'{phrase}\n'textContent.insert(tkinter.INSERT,msg)flag = Trueif not flag:tkinter.messagebox.showinfo('抱歉','我的小脑瓜里找不到这样的词组')return
(tkinter.Button(root,text='查询',command=search,font=('microsoft yahei',16))
.place(x=10,y=60,width=60,height=40))#显示查询结果的多行文本框
textContent = tkinter.scrolledtext.ScrolledText(root,font=('microsoft yahei',16))
textContent.place(x=10,y=110,width=680,height=280)root.mainloop()

这篇关于汉语拼音学习机(Flask,详细代码,帮助学习)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/586299

相关文章

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码