Besoin d'aide pour raccourcir mon code python

d3ssp -  
jee pee Messages postés 41526 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=" ")

A voir également:

1 réponse

jee pee Messages postés 41526 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 

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