Besoin d'aide pour raccourcir mon code python

Fermé
d3ssp - 26 mars 2023 à 15:59
jee pee Messages postés 40812 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 février 2025 - 26 mars 2023 à 17:01

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 40812 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 février 2025 9 526
Modifié le 26 mars 2023 à 17:31

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