到目前为止,这是我的代码。
line = input("Enter a sentence:\n")
for i in range(0,len(line)):
line = line.replace('a', 'oodle')
line = line.replace('e', 'oodle')
line = line.replace('i', 'oodle')
line = line.replace('o', 'oodle')
line = line.replace('u', 'oodle')
print(line)
然而,在替换它们之后,它取代了“oodle”一词中的o和e。我怎么能不成功呢?
答案 0 :(得分:2)
使用re.sub
:
>>> re.sub(r'[aeiou]', 'ooddle', "test")
'tooddlest'
re.sub
一次替换字符串,因此您不会两次替换相同的字符串。
答案 1 :(得分:1)
这将打印' oodle'如果它是一个元音,否则它只会保留辅音:
>>>line='hello'
>>>''.join(['oodle' if i in 'aeiou' else i for i in line])
'hoodlelloodle'
如果你想保留元音并附加' oodle'对它来说,它看起来像:
>>>''.join([i+'oodle' if i in 'aeiou' else i for i in line])
'heoodlellooodle'
答案 2 :(得分:0)
def replace_vowels(string_input, replacement):
return_string = ""
vowels = ('a', 'e', 'i', 'o', 'u')
last_vowel = 0
for i in xrange(0, len(string_input)):
if string_input[i] in vowels:
return_string += string_input[last_vowel:i] + replacement
last_vowel = i + 1
return return_string
# In [2]: replace_vowels('hello', 'oogle')
# Out[2]: 'hooglelloogle'