2013-12-23 38 views
0

我是一名Python初学者。到目前为止,我得到了这个:单独的音节创建规则

vowels = 'aeiouAEIUO' 
consonants = 'bcdfghjklmnñpqrstvwxyzBCDFGHJKLMNÑPQRSTVWXYZ' 
a = input('Type a word: ') 

for i in range(len(a)): 
    cont1 = 0 
    cont2 = 0 
    if a[i] in consonants: 
     cont1 = i - 1 
     cont2 = i + 1 
     if a [cont1] in vowels and a [cont2] in vowels: 
       print('consonant between vowels') 

我想分开音节。我想创建一个规则,当一个辅音在2个元音之间时,辅音必须加入到正确的元音并且打印由' - '分隔的音节montoya = mon-to-ya amor = a-mor clase = cla-se

这段代码当然会给出一个错误:IndexError:字符串索引超出范围。我不知道这意味着什么。

感谢

+0

的规则是不是很好,但。它不适用于例如“letra”在元音之间有两个辅音。 – tripleee

+0

这将是另一个规则。有几条规则我想申请,但我想从两个元音之间的辅音开始 – user2558831

回答

0

I want to create a rule that when a consonant is between 2 vowels, the consonant has to join to the vowel on it's right.

你可以使用re

>>> import re 
>>> vowels = 'aeiouAEIUO' 
>>> consonants = 'bcdfghjklmnñpqrstvwxyzBCDFGHJKLMNÑPQRSTVWXYZ' 
>>> pattern="([" + vowels + "])" + "([" + consonants + "]" + "[" + vowels + "])" 
>>> re.sub(pattern, r'\1-\2', "amor") 
'a-mor' 
>>> re.sub(pattern, r'\1-\2', "clase") 
'cla-se' 
>>> 
+0

谢谢。但是,我如何在代码中实现这一点。此外,我试过: >>> re.sub(pattern,r'\ 1- \ 2',“alexis”) 'a-lexis' – user2558831

+0

@ user2558831您的问题并不十分清楚。你能澄清吗? – devnull