Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petit problème de compréhension

    18 octobre 2020 à 20:00:06

    Bonjours tous le monde. J'essaie de faire un programme qui me retourne la valeur binaire d'un nombre négatif. (Je précise que je débute alors soyez indulgents et ne me parler pas en chinois s'il vous plaît 😅). Et je ne comprend pas car quand je le lance, la console me renvoie cette erreur : unsupported operand type(s) for +: 'builtin_function_or_method' and 'str' en parlant de la ligne 10. Malheureusement je ne comprend pas ce que ça signifie et je doute que ça soit une erreur de type car j'ajoute un caractère a une chaine de caractère. En espérant que vous pourrez m'aider, bonne journée !

    dec = int(input("Entrer un nombre : "))

    if dec<0:
        dec = dec*(-1)
       
        bin = ""

    while dec > 0:
            if dec%2 == 0:
                bin += "0"
            elif dec%2 != 0:
                bin += "1"
            dec = dec//2
           
    len_bin = len(bin)
       
    bin = reversed(bin)

    while len_bin < 8:
        bin = bin + "0"
        len_bin += 1

    inverse = ""

    for i in bin:
        if i == "0":
            inverse += "1"
        else:
            inverse += "0"
               
    addition = "00000001"

    liste1 = list(inverse)
    liste2 = list(addition)

    resultat = ""

    r = 7

    for i in range(8):
        if int(liste1[r]) + int(liste2[r]) == 0:
            resultat += "0"
        elif int(liste1[r]) + int(liste2[r]) == 1:
            resultat += "1"
        elif int(liste1[r]) + int(liste2[r]) == 2:
            resultat += "0"
            liste2[r-1] = str(int(liste2[r-1]) + 1)
        elif int(liste1[r]) + int(liste2[r]) == 3:
            resultat += "1"
            liste2[r-1] = str(int(liste2[r-1]) + 1)
        r = r-1

    print(resultat)

    • Partager sur Facebook
    • Partager sur Twitter
      18 octobre 2020 à 20:21:42

      bin est une fonction builtin ...
      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        18 octobre 2020 à 22:07:35

        KillianJallais a écrit:

        la console me renvoie cette erreur : unsupported operand type(s) for +: 'builtin_function_or_method' and 'str' en parlant de la ligne 10. Malheureusement je ne comprend pas ce que ça signifie et je doute que ça soit une erreur de type car j'ajoute un caractère a une chaine de caractère

        Dans votre code, vous avez bien tenté d’initialiser bin à la chaine vide mais avec Python d'indentation, c'est important... Et cette ligne là n'est exécuté que lorsque dec est négatif! Du coup, il travaille avec le bin qu'il connaît déjà et on ne peut pas faire ce qu'on veut avec celui là.

        • Partager sur Facebook
        • Partager sur Twitter
          18 octobre 2020 à 22:12:17

          Bonjour,

          Merci de colorer votre code à l'aide du bouton Code

          Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: python;">Votre code ici</pre>.

          Merci de modifier votre message d'origine en fonction.

          Liens conseillés

          • Partager sur Facebook
          • Partager sur Twitter

          Petit problème de compréhension

          × 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