Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec une chaine...

Sujet résolu
Anonyme
    5 juillet 2010 à 19:38:14

    Bonjour, alors voila a la ligne 16: afficher[i] =letter, m'indique une erreur, comme quoi le type string ne peux pas prendre ce caractère !
    Pourtant une chaine de caractère est bien un tableaux de caractère ?
    Donc pour résoudre le problème je peux utiliser une liste bien sure, mais j'aimerai comprendre pourquoi ca ne fonctionne pas avec cette méthode.
    Merci à vous d'avance :)

    print("Entrez un mot SVP: ")
    mot = input()
    print("Entrez une lettre SVP: ")
    letter = input()
    long = len(mot)
    i =0
    afficher = ""
    while i <long:
        afficher = afficher +"_"
        i +=1
    for af in afficher:
        print(af +" ", end='')
    i =0
    while i <long:
        if letter == mot[i]:
            afficher[i] =letter
            ok =1
        else:
            ok =0
        i +=1
    if ok ==1:
        print(afficher)
    else:
        print("Votre lettre ne se trouve pas dans le mot")
    
    • Partager sur Facebook
    • Partager sur Twitter
      5 juillet 2010 à 19:46:10

      Citation

      Pourtant une chaine de caractère est bien un tableaux de caractère ?



      Absolument pas ! Il n'y a pas de type pour les caractère en Python. Les chaînes de caractères sont scalaires et immuables.
      Tu dois en créer une nouvelle afficher = afficher[:i]+letter+afficher[i+1:]
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        5 juillet 2010 à 19:54:29

        ok Merci à toi EMC1
        • Partager sur Facebook
        • Partager sur Twitter
          5 juillet 2010 à 20:21:49

          Citation : EMC1

          <citation>Pourtant une chaine de caractère est bien un tableaux de caractère ?



          Ca sent le langage C à plein nez, ais-je raison :p ?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            5 juillet 2010 à 21:52:33

            realmagma => oui ;)

            Donc voici le code fonctionnel, pour ceux qui veulent s'en servir pour un pendu:
            print("Entrez un mot SVP: ")
            mot =input()
            long =len(mot)
            i =0
            afficher =""
            while i <long:
                afficher = afficher +"_"
                i +=1
            print("Le mot à découvrir est: ", end='')
            for af in afficher:
                print(af +" ", end='')
            print("\n")
            while afficher !=mot:
                letter =input("\tEntrer une lettre: ")
                i =0
                ok =0
                while i <long:
                    if letter ==mot[i]:
                        afficher =afficher[:i] +letter +afficher[i+1:]
                        ok =1
                    i +=1
                if ok:
                    print("\n")
                    for af in afficher:
                        print(af +" ", end='' )
                else:
                    print(" \t\t=> Votre lettre ne se trouve pas dans le mot")
            print(" => Est bien le mot mystère")
            
            • Partager sur Facebook
            • Partager sur Twitter
              5 juillet 2010 à 21:59:05

              i =0
              afficher =""
              while i <long:
                  afficher = afficher +"_"
                  i +=1
              


              C'est sans doute la plus grosse inefficacité de ton code, on écrira mieux afficher = long*"_"
              • Partager sur Facebook
              • Partager sur Twitter

              Probleme avec une chaine...

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown