2013-12-23 3 views
0

저는 파이썬에서 초보자입니다. 지금까지 나는 이것을 얻었다 :별도의 음절 작성 규칙

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 : 문자열 인덱스가 범위를 벗어났습니다. 그게 무슨 뜻인지 모르겠다. 당신은 re을 사용할 수

감사

+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.

:

>>> 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

고마워요. 하지만, 어떻게하면 코드에 구현할 수 있습니다. 또한 tryed : >>> re.sub (패턴, r '\ 1- \ 2', "alexis") 'a-lexis' – user2558831

+0

@ user2558831 질문이 무엇인지 분명하지 않습니다. 명확히 해 주시겠습니까? – devnull