Python 返回汉字的汉语拼音

yizhihongxing

下面我会详细讲解如何在Python中实现汉字转拼音的功能。

安装第三方库

Python的标准库中没有提供汉字转拼音的功能,我们可以通过第三方库 pypinyin 来实现该功能。在终端中通过以下命令安装 pypinyin

pip install pypinyin

使用方法

  1. 引入pypinyin库
from pypinyin import pinyin, lazy_pinyin
  • pinyin 函数会返回每个汉字拼音的个数,且默认返回音调形式。如果该汉字无法转成拼音,则返回 [None]

  • lazy_pinyin 函数会将每个汉字转成无音调的拼音形式(即各个汉字取英文首字母组成的单词),默认返回一个列表。

  • 传入汉字列表或字符串

# 将汉字转成拼音音调形式,每个汉字拼音之间用空格隔开
str = 'Python 返回汉字的汉语拼音'
pinyin_str = pinyin(str, style = NORMAL, heteronym=False)

# 输出是 [['p', 'y', 't', 'h', 'o', 'n'], ['f', 'a', 'n', 'h', 'u', 'i'], ['h', 'a', 'n', 'z', 'i'], ['d', 'e'], ['h', 'a', 'n', 'y', 'u'], ['p', 'i', 'n', 'y', 'i', 'n']]
print(pinyin_str)

# 将汉字转成拼音无音调形式
lazy_pinyin_str = lazy_pinyin(str)

# 输出是 ['python', 'fan', 'hui', 'han', 'zi', 'de', 'han', 'yu', 'pin', 'yin']
print(lazy_pinyin_str)

上述代码中,我们传入中文字符串 str,并利用 pinyinlazy_pinyin 函数将其转成不同形式的拼音,分别存储在 pinyin_strlazy_pinyin_str 中。

  1. 将拼音输出为字符串形式

可选的,我们还可以将拼音转成字符串形式:

pinyin_str = " ".join(["".join(x) for x in pinyin(str, style = NORMAL, heteronym=False)])
lazy_pinyin_str = " ".join(lazy_pinyin(str))

最后,我们就可以方便地在Python中将汉字转成拼音。

示例

下面给出两个转换汉字为拼音的示例。

示例1

from pypinyin import pinyin, lazy_pinyin

# 这里我写了一个包含拼音音调的转换,和仅包含首字母的转换
str = '我是一名程序员,我为自己代言!'
pinyin_str = pinyin(str, style = NORMAL, heteronym=False)
lazy_pinyin_str = lazy_pinyin(str)

pinyin_str = " ".join(["".join(x) for x in pinyin_str])
lazy_pinyin_str = " ".join(lazy_pinyin_str)

print("包含拼音音调的转换:")
print(pinyin_str)
print("\n仅包含首字母的转换:")
print(lazy_pinyin_str)

输出:

包含拼音音调的转换:
wǒ shì yī míng chéng xù yuán ,wǒ wèi zì jǐ dài yán !

仅包含首字母的转换:
wo shi yi ming cheng xu yuan ,wo wei zi ji dai yan !

示例2

from pypinyin import pinyin, lazy_pinyin

# 这里我写了一个英文歌词的转换,其中附加了“/”符号以体现歌词的节奏
str = "There's a fire starting in my heart / Reaching a fever pitch, and it's bringing me out the dark / Finally I can see you crystal clear / Go ahead and sell me out and I'll lay your ship bare"

pinyin_str = pinyin(str, style = NORMAL, heteronym=False)
lazy_pinyin_str = lazy_pinyin(str)

pinyin_str = "/ ".join(["".join(x) for x in pinyin_str]).replace(" er ", " ") + "/"    # er与r谐音,是一个点化音,需要去除
lazy_pinyin_str = "/ ".join(["".join(x) for x in lazy_pinyin_str]) + "/"

print("包含拼音音调的转换:")
print(pinyin_str)
print("\n仅包含首字母的转换:")
print(lazy_pinyin_str)

输出:

包含拼音音调的转换:
téng rǔ suǒ yī feì wǒ zhī nèi / rì qíng ào yù jīng xī shuō réng wǒ tóu qín / jié yī chéng mù yuàn nǐ dǎ shèng / bù zài dù bèi wéi yǔ wǒ yī qì /
shǎo zì hǎo gǎn xuán wù nǐ de sòng lǐ / zài zhè fēn chē qù shěn fèi mǎn yuán / wǒ zhī dào nǐ yàn diàn qí / qù gōu bán wǒ rán hòu qǐn chē qí /

仅包含首字母的转换:
there 's a fire starting in my heart / reaching a fever pitch , and it 's bringing me out the dark / finally i can see you crystal clear / go ahead and sell me out and i 'll lay your ship bare /

这两个示例分别将中文和英文转换成拼音形式,并实现了不同的拼音输出方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 返回汉字的汉语拼音 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • python函数声明和调用定义及原理详解

    Python函数声明和调用定义及原理详解 在Python中,函数是一种非常重要的编程工具。函数允许我们将重复的任务打包成可重复使用的模块,并且提高了代码的可读性和可维护性。下面我们就来详细讲解一下Python函数声明和调用的定义及原理。 函数声明 函数是由def关键字定义的,语法结构如下: def function_name(parameters): # 具…

    python 2023年5月18日
    00
  • python爬虫之利用Selenium+Requests爬取拉勾网

    Python爬虫之利用Selenium+Requests爬取拉勾网 一、前言 本篇文章将详细介绍如何使用Python编写Selenium+Requests实现的爬虫程序来爬取拉钩网的招聘信息。 二、技术选型 Selenium:对于使用AJAX或JavaScript进行渲染和交互的网站页面,Selenium可以完美模拟浏览器行为,进入页面、下拉和点击等操作都可…

    python 2023年5月14日
    00
  • 如何使用Python连接和操作SQLite数据库?

    在Python中,可以使用sqlite3模块连接和操作SQLite数据库。以下是Python使用sqlite3模块连接和操作SQLite数据库的完整攻略,包括连接SQLite数据库、表、插入数据、查询数据、更新数据、删除数据等操作。 连接SQLite数据库 在Python中,可以使用sqlite3模块连接SQLite。以下是连接SQLite数据库的基本语法:…

    python 2023年5月12日
    00
  • Python超细致探究面向对象

    Python超细致探究面向对象 什么是面向对象编程? 面向对象编程(Object-Oriented Programming, OOP)是一种软件编程范式,它将现实世界中的事物描述为程序中的对象,对象间可以相互交互,通过定义对象的属性和行为来描述现实世界。在Python中,一切皆为对象,都具有属性和方法。 类和实例 类是对象的一种,它是一种抽象的概念,用来描述…

    python 2023年5月30日
    00
  • Python常用数据类型之间的转换总结

    当我们在Python中进行编程时,常常需要将一个数据类型转换为另一个数据类型。Python提供了多种数据类型之间的转换方法,包括int()、float()、str()、list()、tuple()和dict()等。以下是Python常用数据类型之间的转换总结。 int()函数 int()用于将其他数据类型转换为整数类型。以下是一个示例,演示如何使用int()…

    python 2023年5月13日
    00
  • Python3爬虫学习之将爬取的信息保存到本地的方法详解

    Python3爬虫学习之将爬取的信息保存到本地的方法详解 在进行网页数据的爬取时,我们常常需要将爬取到的信息保存到本地文件中。本文将详细讲解在Python3中,如何将爬取到的数据保存到本地文件中的几种方法。 方法一:使用open函数 Python3可以使用内置的open函数打开/创建文件,并且通过write方法将获取到的数据写入文件中。下面是一个示例代码: …

    python 2023年5月14日
    00
  • 简单介绍Python中的decode()方法的使用

    下面我来为你详细讲解“简单介绍Python中的decode()方法的使用”。 什么是decode()方法 在Python中,decode()方法是将bytes对象(字节串)转换为字符串的方法。在Python3中,所有字符串都是Unicode编码的,所以使用decode()方法的时候需要指定编码方式,否则会抛出UnicodeDecodeError异常。 dec…

    python 2023年5月31日
    00
  • Python os模块常用方法和属性总结

    Python os模块常用方法和属性总结 os模块概述 Python提供了os模块,用于处理文件和目录的路径以及常见的系统操作。使用os模块可以方便地进行文件操作、目录操作、进程管理等。下面我们将讲解os模块的常用方法和属性。 os模块常用方法和属性 os.name属性 使用os.name属性获取当前系统的名称。在Unix系统上,返回值为’posix’,在W…

    python 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部