Partage
  • Partager sur Facebook
  • Partager sur Twitter

Type variables

str

    16 avril 2024 à 12:49:24

    Bonjour,

    je développe un programme de conversion de base.

    J'ai réussi pou les bases de 2 à 10 vers bases de 2 à 16.

    pour convertir d'une base supérieure à 10 je n'arrive pas.

    voilà une partie du code et je ne comprends pas l'erreur.

    nombre="ABCDEF"
    for i in range(len(nombre)):
        print(nombre[i])
        if nombre[i]=="A":
            nombre[i]="10"
        elif nombre[i]=="B":
            nombre[i]="11"
        elif nombre[i]=="C":
            nombre[i]="12"
        elif nombre[i]=="D":
            nombre[i]="13"
        elif nombre[i]=="E":
            nombre[i]="14"
        elif nombre[i]=="F":
            nombre[i]="15"
    print(nombre)

    j'ai mis les chiffres avec double guillemets, simple guillemets ou sans guillemet j'ai l'erreur suivante à la ligne 5: 'str' object does not support item assignment.

    c'est quoi cette erreur et comment y remédier s'il vous plait ?

    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2024 à 13:03:28

      L'erreur que vous rencontrez, 'str' object does not support item assignment, signifie que vous ne pouvez pas modifier une chaîne de caractères (un objet str) directement en Python. Les chaînes en Python sont immuables, ce qui signifie que vous ne pouvez pas changer leur contenu une fois qu'elles sont créées. Pour remédier à ce problème, vous pouvez utiliser une liste de caractères au lieu d'une chaîne.
      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        16 avril 2024 à 13:07:20

        merci pour l'éclairage et comment convertir un nombre en liste?

        l=[]
        for i in nombre:
            l.append[i]
        
        ou il ya mieux ?
        • Partager sur Facebook
        • Partager sur Twitter
          16 avril 2024 à 13:40:34

          l = list(nombre)
          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

            16 avril 2024 à 19:12:11

            Pour faire ce que tu veux avec une liste:

                nombre[i] = str("0123456789abcdef".index(nombre[i]))

            Si le nombre est valide au départ.

            • Partager sur Facebook
            • Partager sur Twitter

            Le Tout est souvent plus grand que la somme de ses parties.

              17 avril 2024 à 8:40:09

              Autre possibilité avec int,

              In [1]: int(f'0x{input("Entrer lettre: ").lower()}', 16)
              Entrer lettre: A
              Out[1]: 10
              
              In [2]: int(f'0x{input("Entrer lettre: ").lower()}', 16)
              Entrer lettre: B
              Out[2]: 11



              • Partager sur Facebook
              • Partager sur Twitter

              Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
              La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

              Type variables

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown