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


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

    1. Contributeur

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

  1. non je ne crois pas 

    1. Contributeur

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

    2. @yg_be

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

    3. Contributeur
      @SalaNsi

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

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

    1. Contributeur

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

    2. @yg_be

      pas là pendant 3 semaines

  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