Separation d'une chaine de caractere

Fermé
etienne6919 - 19 janv. 2017 à 12:58
Cirdek Messages postés 19 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 1 avril 2017 - 28 mars 2017 à 01:02
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

_Ritchi_ Messages postés 21053 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 22 janvier 2023 6 027
14 mars 2017 à 20:00
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
0
Cirdek Messages postés 19 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 1 avril 2017 15
28 mars 2017 à 01:02
Ou peut être plus simple:
for l in chaine:
      if l == "a":...
0