Aller au contenu

Renverser une chaine⚓︎

Programmer une fonction renverser :

  • prenant en paramètre une chaine de caractères mot,

  • renvoyant une nouvelle chaine de caractères en inversant ceux de la chaine mot.

Contrainte

On s'interdit d'utiliser les fonctions reverse et reversed, ainsi que les tranches mot[::-1].

🐍 Console Python
>>> renverser('informatique')
'euqitamrofni'
>>> renverser('nsi')
'isn'
>>> renverser('')
''
###
# Testsbksl-nlassert renverser('informatique') == 'euqitamrofni'bksl-nlassert renverser('nsi') == 'isn'bksl-nlassert renverser('') == ''bksl-nlbksl-nl# Tests supplémentairesbksl-nlassert renverser('abcde') == 'edcba'bksl-nlassert renverser('159753') == '357951'bksl-nlassert renverser('a6b-[]') == '][-b6a'bksl-nlassert renverser('abc'py-str20) == 'cba'py-str20bksl-nlbksl-nl 5/5

def renverser(mot):bksl-nl ...bksl-nlbksl-nlbksl-nl# Testsbksl-nlrenverser('informatique') == 'euqitamrofni'bksl-nlrenverser('nsi') == 'isn'bksl-nlrenverser('') == ''bksl-nlbksl-nlbksl-nldef renverser(mot):bksl-nl tom = ''bksl-nl for caractere in mot:bksl-nl tom = caractere + tombksl-nl return tombksl-nlbksl-nlbksl-nl# Testsbksl-nlassert renverser('informatique') == 'euqitamrofni'bksl-nlassert renverser('nsi') == 'isn'bksl-nlassert renverser('') == ''bksl-nlbksl-nlbksl-nl

A

On crée tout d'abord une chaine vide destinée à contenir la chaine mot renversée. Ensuite, on ajoute chaque caractère de mot au début de tom.

Variante avec les indices⚓︎

On pouvait aussi parcourir les indices de la fin vers le début.

🐍 Script Python
def renverser(mot):
    tom = ''
    for i in range(len(mot)-1, -1, -1):
        tom = tom + mot[i]
    return tom

Variante fonctionnelle⚓︎

Avec une liste par compréhension et on utilise join :

🐍 Script Python
def renverser(mot):
    return ''.join([mot[i] for i in range(len(mot)-1, -1, -1)])

Z