Prova 2: substitua()

Re: Prova 2: substitua()

por José Coelho de Pina -
Número de respostas: 0
def substitua(s, velha, nova):
    ''' (str, str) -> str
    Recebe três strings: s, velha, e nova. 
    Retorna uma string t que é obtida percorrendo-se a string s e 
    substituindo-se cada ocorrência da string velha pela string nova,
    a medida que velha é encontrada em s.

    Exemplos:
    >>> substitua("Catarina viu uma tarantula em cima da tartaruga", "a", "-|.")
    'C-|.t-|.rin-|. viu um-|. t-|.r-|.ntul-|. em cim-|. d-|. t-|.rt-|.rug-|.'
            
    >>> substitua("Catarina viu uma tarantula em cima da tartaruga", "tar", "")  
    'Caina viu uma antula em cima da uga'
    
    >>> substitua("comer correr conter c", "er c", ".")  
    'com.orr.ont.'

    >>> substitua("nanananan", "nan", "x")
    'xaxan'
    '''
    t = ""
    nV = len(velha)
    n  = len(s)
    i = 0 # prefixo de s[i:] será comparado com a string velha 
    while i < n:
        if s[i:i+nV] == velha:
            t += nova
            i += nV
        else:
            t += s[i]
            i += 1
    return t