Separation d'une chaine de caractere [Fermé]

Signaler
-
Messages postés
19
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
1 avril 2017
-
Bonjour
j'aimeraissavoir s'il est possible de changer chaque caractere d'une chaine par une commande ?
par exemple , j'ai une chainede caractere = a++-+aa
je voudrais que a = file.write( pd() ; fd() )
+ = file.write ( right ( 60 ) )
etc ..

2 réponses

Messages postés
20264
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
9 mai 2021
5 577
Bonjour,

Tu crées un dictionnaire définissant pour chaque caractère sa valeur. avec l'exemple que tu as donné, voilà à quoi ressemblerait le début de ton dictionnaire:
mon_dico = {
'a': 'file.write( pd() ; fd() )' , 
'+': 'file.write ( right ( 60 ) )'
'-': 'fiel.read()'
}

Ensuite, pour chaque caractère de ta chaine, tu dis que tu veux prendre la valeur associée dans le dictionnaire.
Exemple:
# -*- coding: utf-8 -*-

def Traducteur(texte):
    resultat = ''
    for i in range(len(texte)):
        resultat += str(mon_dico[str(texte[i])])
    return resultat


mon_dico = \
    {
    'a': 'file.write( pd() ; fd() ) ' ,
    '+': 'file.write ( right ( 60 )) ',
    '-': 'file.read() '
    }
# exemple:
ma_chaine = 'a++-+aa'

traduction = Traducteur(ma_chaine)
print('La chaine:', ma_chaine, '\nsignifie :', traduction)


A toi de gérer les erreurs comme par exemple un caractère dans "ma_chaine" n'est pas défini dans "mon_dico"

Ritchi
Messages postés
19
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
1 avril 2017
11
Ou peut être plus simple:
for l in chaine:
      if l == "a":...