Separation d'une chaine de caractere
etienne6919
-
Cirdek Messages postés 22 Statut Membre -
Cirdek Messages postés 22 Statut Membre -
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 ..
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
-
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 -
Ou peut être plus simple:
for l in chaine: if l == "a":...