首页 > 解决方案 > 我在编写函数时遇到问题。(vowels_repeated) 返回一个只有元音重复的字符串

问题描述

该函数是 vowels_repeated ,它重复字符串中的所有元音。

def vowels_repeated(text: str, repeat: int) -> str:
    new = ''
    vowels = 'aeiou'
    for ch in text:
        if ch in vowels:
            new = text.replace(ch, ch*repeat)
    return new

vowels_repeated('My name is Jack', 2)应该返回My naamee iis Jaack

这段代码不起作用,它给了我一个空字符串,我不明白为什么。

标签: pythonfor-loop

解决方案


虽然不是最佳选择,但您可以将通过字符串的 for 循环替换为通过元音列表的 for 循环。str.replace已经遍历字符串:

def vowels_repeated(text: str, repeat: int) -> str:
    vowels = 'aeiou'
    for v in vowels:
        text = text.replace(v, v*repeat)
    return text

或者,您不能使用替换并手动执行操作:

def vowels_repeated(text: str, repeat: int) -> str:
    out = ""
    vowels = 'aeiou'
    for c in text:
        if c in vowels:
            out += c * repeat
        else:
            out += c
    return out

推荐阅读