2013-09-08 1 views
0

Я хочу создать цикл, который проходит через строку, и если буква «r» следует гласной, она удалит гласный. Например:Python Beginners 3 - Как создать цикл, который делает это?

Enter word: Cracker 
New word: Crackr 

или

Enter word: Flirk 
New word: Flrk 

У меня уже есть способ сделать это, но это не очень аккуратно. Я просто хочу знать, как я могу улучшить себя. Как мне сделать это:

if "ar" in s or "er" in s or "ir" in s or "or" in s or "ur" in s: 
     s = s.replace("ar","r") 
     s = s.replace("er","r") 
     s = s.replace("ir","r") 
     s = s.replace("or","r") 
     s = s.replace("ur","r") 

Благодаря

ответ

1

Вы можете использовать регулярные выражения для этого:

import re 

s = re.sub("[aeiou]r", "r", s) # remove a vowel preceding `r` 
+0

Он хочет петлю, хотя. –

+0

@RamchandraApte: 'для гласного в« aeiou »: s = s.replace (гласный + 'r', 'r')' цикл здесь будет менее уместным (примечание: он может привести к другому результату, если есть несколько гласных до ' 'r''). – jfs