IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Comment remplacer plusieurs caractères dans une chaîne?


Sujet :

Python

  1. #1
    Membre du Club Avatar de Antigonos Ier Gonatas
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 78
    Points : 40
    Points
    40
    Par défaut Comment remplacer plusieurs caractères dans une chaîne?
    Bonsoir à tous!
    J'aimerais savoir comment remplacer plusieurs caractères dans une chaîne pour ensuite réafficher la nouvelle chaîne.
    J'ai essayé plusieurs codes, rien n'y fait!
    Python ne veut même pas modifier les chiffres et les caractères spéciaux!
    Voici le code le plus probant que j'ai réussi a créer, malgré qu'il ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mot = raw_input()
    longueur = len(mot)
    compteur=0
     
     
    motraduit=''
    while (compteur<longueur):
        motraduit+=mot.replace("a",a,mot[compteur])
        compteur=compteur+1
    Le debugger me met que mon erreur est à l'avant-dernière ligne,
    "TypeError: an integer is required"
    Je veux bien oui, mais comment je fais?
    Et est-ce que cela me permettra d'afficher ma chaîne avec plusieurs de mes caractères modifiés?


    note: Pour lever toute ambiguité, a correspond a une fonction
    qui traduit la lettre a en son équivalent en morse.

    Je vous remercie d'avance pour vos réponses.

  2. #2
    Membre du Club Avatar de Antigonos Ier Gonatas
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 78
    Points : 40
    Points
    40
    Par défaut
    Bon, j'ai réussi à progresser depuis hier, voici ce que donne le code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    mot = raw_input()
    longueur = len(mot)
    a=A="._ "
    b=B="_... "
    r=R="._. "
    (et toutes les autres lettres de l'alphabet)
     
     
    motraduit=''
    motraduita=mot.replace("a",a,len(mot))
    motraduitb=mot.replace("b",b,len(mot))
    motraduitr=mot.replace("r",r,len(mot))
     
     
    nouvomot=motraduita+motraduitb+motraduitr
     
    print nouvomot
    Par contre, cela ne fonctionne toujours pas!
    Lorsque je saisie un mot, il me le sort en plusieurs exemplaires
    avec à chaque fois UNE SEULE lettre de modifiée!
    Personne ne sait comment faire pour n'écrire le mot qu'en une seule fois,
    avec tous les caractères modifiés s'il vous plaît?
    Merci d'avance.

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 118
    Points : 137
    Points
    137
    Par défaut
    Je te propose une solution complètement différente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> morse = { 'a':'.-' , 'b':'-...', 'r':'._.' }
    >>> s = 'abr'
    >>> ' '.join([ e.replace(e, morse[e]) for e in s ])
    '.- -... ._.'
    >>>
    Il n'y a qu'à compléter le dictionnaire morse et faire un raw_input pour la variable s.

    [ e.replace(e, morse[e]) for e in s ] est une list comprehesion : pour chaque élément de la string, le remplacer par sa valeur dans le dictionnaire morse.

  4. #4
    Membre du Club Avatar de Antigonos Ier Gonatas
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 78
    Points : 40
    Points
    40
    Par défaut
    Merci Onarap!
    Mais où tu as appris ces trucs là?

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 118
    Points : 137
    Points
    137
    Par défaut
    Il existe beaucoup de tutoriaux pour Python, p.ex. http://python.developpez.com/cours/TutoSwinnen/

  6. #6
    Membre du Club Avatar de Antigonos Ier Gonatas
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 78
    Points : 40
    Points
    40
    Par défaut
    Okay, merci!
    Je tâcherai d'étudier plus les cours maintenant avant de me lancer dans des projets!
    Mais bon, avec le tutoriel de Gérard Swinnen, on fait un exercice, puis deux, puis on veut innover, et on peut plus s'arrêter!
    Bon, ben j'y retourne.Merci encore Onarap!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/01/2013, 20h52
  2. [Toutes versions] Comment remplacer un caractère dans une cellule ?
    Par chachon dans le forum Excel
    Réponses: 2
    Dernier message: 21/12/2010, 18h45
  3. Réponses: 2
    Dernier message: 31/03/2008, 15h18
  4. Réponses: 4
    Dernier message: 29/08/2006, 17h44
  5. [String] Remplacement caractères dans une chaîne
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 4
    Dernier message: 19/07/2004, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo