Aide exercice nsi

J'ai un dm pour nsi qui contient 4 questions, voilà l'une d'entre elles, je ne les comprend pas.

 

def dec_to_bin(decimal):
    binaire=""
    quotient = decimal // 2
    reste = decimal % 2
    binaire = reste + binaire
    while quotient!=0 :
        decimal = quotient
        reste = decimal % 2
        binaire = reste + binaire
        quotient = decimal//2

    
    # au final, tant que le binaire n'a pas une taille de 4
    while binaire != 4:
        # on ajoute des "0" à gauche
        binaire = binaire+0
        
    return binaire


# Les lignes ci-dessous testent votre code... n'y touchez pas !
# Si une AssertionError apparaît... c'est que votre code n'est pas bon...
assert dec_to_bin(10) == '1010'
assert dec_to_bin(15) == '1111'
assert dec_to_bin(0) == '0000'

5 réponses

  1. Contributeur

    bonjour,

    que ne comprends-tu pas?

    0

      • On concatene reste à gauche de binaire (Attention, reste doit être au format chaine de caracteres!!)

      0
      1. Contributeur

        SI tu exécutes ton programme, n'est-ce pas clair?

        0
    1. non je ne crois pas 

      0
      1. Contributeur

        as-tu exécuté ton programme?  quel résultat as-tu obtenu?

        0
      2. @yg_be

        je pense que jai reussi mais apres il y a une "AssertionError" et le site crash

        0
      3. Contributeur
        @SalaNsi

        Tu as exécuté le programme que tu montres?  Pas de message d'erreur avant l'assertion?

        0
    2. de plus n'ayant pas la leçon je n'y comprends pas grand chose

      0
      1. Contributeur

        Comment te retrouves-tu à faire un DM sans avoir eu la leçon?

        1
      2. @yg_be

        pas là pendant 3 semaines

        0
    3. Modérateur

      Salut,

      A l’exécution il y a une erreur, claire

          binaire = reste + binaire
      TypeError: unsupported operand type(s) for +: 'int' and 'str'
      

      la concaténation fonctionne avec 2 chaines, reste étant un entier il faut le convertir


      0