Besoin d'aide pour raccourcir mon code python

d3ssp -  
jee pee Messages postés 31908 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour, je suis débutant et j'ai crée un script en python pour convertir un nombre décimal en un nombre binaire, et j'aimerais savoir si c'est possible de raccourcir la partie où je met toutes les instruction dans ma fonction "convert" (je me suis creusé la tête mais je n'arrive pas à trouver)

Voici le code :

octet = [0,0,0,0,0,0,0,0]

d = int(input("Entrez un nombre entre 0 et 255 : "))

fd = str(d)

def convert():

    global octet

    global d

    db = [2, 4, 8, 16, 32, 64, 128, 256]

    while d != 0:

        if 2>d>=1:

            octet[-1] = 1

            d -= 1

        if 4>d>=2:

            octet[-2] = 1

            d -= 2

        if 8>d>=4:

            octet[-3] = 1

            d -= 4

        if 16>d>=8:

            octet[-4] = 1

            d -= 8

        if 32>d>=16:

            octet[-5] = 1

            d -= 16

        if 64>d>=32:

            octet[-6] = 1

            d -= 32

        if 128>d>=64:

            octet[-7] = 1

            d -= 64

        if 256>d>=128:

            octet[-8] = 1

            d -= 128


 

convert()

print("La valeur en octet du nombre ", fd, " est : ", *octet, sep=" ")

1 réponse

  1. jee pee Messages postés 31908 Date d'inscription   Statut Modérateur Dernière intervention   9 985
     

    Bonjour,

    Il existe de très nombreuses façon de procéder.

    Voilà en divisant par 2 et conservant juste le reste, c'est la transposition de ce que l'on fait à la main pour faire une conversion avec un papier et un crayon, en maitrisant la division par 2

    nbr = int(input ("Tapez votre nombre "))
    code = ''
    while nbr !=0 :
         reste = nbr%2
         nbr = nbr//2
         code = str(reste)+code
    print(code)
    

    0