You are not logged in.

Computer Science in 1ère

The forum to cure all your computer anxieties

#1 14-Sep-2019 10:13:38

Pacôme Giraudeau
Member
Registered: 12-Sep-2019
Posts: 67

Offline

#2 14-Sep-2019 11:59:33

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Défi n° 1

C'est donc ça :


def des_bin(n):
   
    test = 1
    colonnes = 0
    des = ''
    while test < n:
        test = test*2
        colonnes = colonnes + 1
   
    for i in range(n):
        nb_bin = str( bin(i) )
        nb_bin_v = nb_bin[2:]
       
       
        des_nb_bin = ""
       
        for I in range( colonnes - len(nb_bin_v) ):
            des_nb_bin = des_nb_bin + "0"
           
        des_nb_bin = des_nb_bin + nb_bin_v
        " ".join(des_nb_bin)
       
        des = des + '\n' + des_nb_bin
   
    retour = "B1\n{} {}\n{}".format(colonnes, n, des)
    print(retour)
    return
 

Offline

#3 14-Sep-2019 12:22:22

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Défi n° 1

OK. Une coquille : c'est  P1 et non B1 smile
Pour la boucle "for I" : à quoi sert le I ? Est-ce que cela peut être écrit sans boucle for ?

Pourquoi un print(retour) et ensuite un return vide ?
Pourquoi pas un return(retour) ?

Peut-être ajouter un docstring et une signature (les types )

Offline

#4 15-Sep-2019 11:45:55

Pacôme Giraudeau
Member
Registered: 12-Sep-2019
Posts: 67

Re: Défi n° 1

Effectivement, le « for I in range... » aurait pu être remplacé par

des_nb_bin = des_nb_bin + « 0 » for des_nb_bin in range ( colonnes - len( nb_bin_v ) ) 

Quant au printemps, ça devait être à cause de tests que je faisais et ai oublié de corriger.

Autre point que je n’ai pas mentionné, le «   ».join(des_nb_bin) ne fonctionnait pas sans aucune raison. Le « print » m’affichait des_nb_bin sans espaces.

Offline

#5 15-Sep-2019 12:19:26

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Défi n° 1

Pacôme Giraudeau wrote:

Autre point que je n’ai pas mentionné, le «   ».join(des_nb_bin) ne fonctionnait pas sans aucune raison. Le « print » m’affichait des_nb_bin sans espaces.

ah ben si pour une raison... : il faut réaffecter la chaîne transformée...


des_nb_bin = " ".join(des_nb_bin)
 

et pour afficher 10 '0', il faut utiliser l'* :


Moi[6]: '0'*5
Python[6]: '00000'
 

Offline

Board footer

Powered by FluxBB