鱼C论坛

 找回密码
 立即注册
查看: 4523|回复: 4

[已解决]请问如何检测拼音的声韵母

[复制链接]
发表于 2017-4-4 11:07:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python小白刚学习不久 现在想做一个小程序,涉及到拼音的声韵母检测,例如shuang这个拼音,想要检测到声母sh和韵母uang,但是没有思路该怎么做 请大神们指点一下我吧,非常感谢!
最佳答案
2017-4-4 12:18:20
可以把声母和韵母做个列表,分别看哪个声母和韵母在拼音中,要注意的是把长声母韵母放在前面,如uang--ang--an--a的次序排列,否则则会误判shuang再有韵母a等。
我简单写了一下,声母和韵母表没写全,你先看看。
  1. pinyin = 'shuang'
  2. shengmu = ['b', 'p', 'm', 'f', 'sh', 's']
  3. yunmu = ['uang', 'ang', 'an', 'a']
  4. for i in shengmu:
  5.     if i in pinyin:
  6.         print('声母是:%s'%i)
  7.         break
  8. for i in yunmu:
  9.     if i in pinyin:
  10.         print('韵母是:%s'%i)
  11.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-4-4 12:18:20 | 显示全部楼层    本楼为最佳答案   
可以把声母和韵母做个列表,分别看哪个声母和韵母在拼音中,要注意的是把长声母韵母放在前面,如uang--ang--an--a的次序排列,否则则会误判shuang再有韵母a等。
我简单写了一下,声母和韵母表没写全,你先看看。
  1. pinyin = 'shuang'
  2. shengmu = ['b', 'p', 'm', 'f', 'sh', 's']
  3. yunmu = ['uang', 'ang', 'an', 'a']
  4. for i in shengmu:
  5.     if i in pinyin:
  6.         print('声母是:%s'%i)
  7.         break
  8. for i in yunmu:
  9.     if i in pinyin:
  10.         print('韵母是:%s'%i)
  11.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-4 14:11:17 | 显示全部楼层
汉语拼音转换工具 Python 版:Python-pinyin
http://www.open-open.com/lib/view/open1426234504560.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-4 15:22:13 | 显示全部楼层
冬雪雪冬 发表于 2017-4-4 12:18
可以把声母和韵母做个列表,分别看哪个声母和韵母在拼音中,要注意的是把长声母韵母放在前面,如uang--ang- ...

非常感谢!还有一个问题,如果是拼音连续输入,比如霜花shuanghua这样连在一起的,这样的该怎么判断呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-4 16:08:30 | 显示全部楼层
bigmaocxd 发表于 2017-4-4 15:22
非常感谢!还有一个问题,如果是拼音连续输入,比如霜花shuanghua这样连在一起的,这样的该怎 ...
  1. pinyin = 'shuanghua'
  2. shengmu = ['b', 'p', 'm', 'f', 'sh', 's', 'h']
  3. yunmu = ['uang', 'ua', 'ang', 'an', 'a']
  4. while pinyin != '':
  5.     for i in shengmu:
  6.         if i == pinyin[:len(i)]:
  7.             print('声母是:%s'%i)
  8.             pinyin = pinyin[len(i):]
  9.             break
  10.     for i in yunmu:
  11.         if i in pinyin:
  12.             print('韵母是:%s'%i)
  13.             pinyin = pinyin[len(i):]
  14.             break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-26 16:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表