# -*- encoding: utf8 -*-

# Fonction remplaçant certains caractères d'une chaîne par d'autres

# Importation de modules:
import doctest

# Définition locale de fonctions:

def changeCar(ch, car1, car2, debut=0, fin=-1):
    """
    changeCar(str ch, str car1, srt car2, int debut, int fin) --> str.
    Remplace tous les caractères <car1> par <car2> dans la chaîne <ch>
    à partir de l'indice <debut> et jusqu'à l'indice <fin>.

    Exemples d'utilisation:
    ***********************

    >>> phrase = "Ceci est une toute petite phrase."
    >>> changeCar(phrase, ' ', '*')
    'Ceci*est*une*toute*petite*phrase.'
    
    >>> changeCar(phrase, ' ', '*', 8, 12)
    'Ceci est*une*toute petite phrase.'

    >>> changeCar(phrase, ' ', '*', 12)
    'Ceci est une*toute*petite*phrase.'

    >>> changeCar(phrase, ' ', '*', fin=12)
    'Ceci*est*une*toute petite phrase.'
    
    """
    

    if fin == -1:
        fin = len(ch)-1

    i = 0
    resultat = ""

    while i < debut:
        resultat = resultat + ch[i]
        i += 1

    while i <= fin:
        if ch[i] == car1:
            resultat = resultat + car2
        else:
            resultat = resultat + ch[i]
        i += 1

    while i < len(ch):
        resultat = resultat + ch[i]
        i += 2

    return resultat

# Corps principal du programme:

if __name__ == "__main__":
    doctest.testmod()

