- Nombre de caractères 1136Écrire une fonction compter(lettre, chaine) qui retourne le nombre de fois où lettre (qui est une chaîne de longueur 1) apparaît dans chaine.
L’utilisation de .count() est bien entendu interdite.

- Indice d'un caractère 1073Écrire une fonction chercher(lettre, chaine) qui retourne l’indice de la première occurrence de lettre dans chaine. Si lettre n'est pas dans chaine, la fonction doit retourner -1.
L’utilisation de .find() est bien entendu interdite.

- Début 635Écrire une fonction commencePar(debut, chaine) qui retourne True si chaine commence par debut, et False sinon.

- Fin ! 520Écrire une fonction finitPar(fin, chaine) qui retourne True si chaine se termine par fin , et False sinon.


- Remplacement local 209Écrire une fonction remplacer(indice, lettre, chaine) qui retourne chaine modifiée en remplaçant la lettre d'indice indice par lettre. Si l'indice dépasse la longueur de la chaîne, la fonction retourne chaine non modifiée.
On pourra parcourir la chaine par indice, avec for i in range(len(chaine)).

- Disparitions 250Écrire une fonction masquer(caracteres, chaine) qui retourne chaine modifiée en remplaçant chaque caractère de caracteres par *.


- Échange de caractères 58Écrire une fonction echanger(lettre1, lettre2, chaine) qui retourne chaine modifiée, dans laquelle toutes les lettres lettre1 et lettre2 ont été échangées.


- Dissimulation d'email 94Écrire une fonction dissimulerEmail(email) qui fonctionne de la manière suivante :




- Vérification d'email 67Écrire une fonction verifierEmail(email) qui retourne True si email est correct. On dira qu'un email est correct lorsqu'il est de la forme identifiant@domaine.extension et :