Résolue

Générer un octect aléatoire

# Modules # Bases de données

Gabriel Trouvé

Mentor

Bonjour,

Vers la fin de la formation Les bases de python il y a pas mal d'exo (avec les palindromes, pangrammes etc...)


Je suis à l'exercice :

Dans cet exercice, nous allons générer un octet aléatoire.

Un octet est représenté par une suite de 8 chiffres allant de 0 à 1, par exemple : 01101110 qui est égal au nombre 110 en base décimale.


J'ai essayé plusieurs choses mais je bloque je n'y arrive pas. J'aurais juste besoin d'un petit coup de pouce. Car au final je sais que je vais devoir utiliser le module random mais ce que j'essaye ne va pas du tout.

Et j'ai pas envie de regarder la soluce sans l'avoir réussi lol.


Merci d'avance


J'ai essayé un truc comme ça, mais quand il y a des 0 au début de mon nombre et bah ils disparaissent lol et je n'ai plus 8 chiffres :

import random


numbers = ["0", "1"]


liste = []


for i in range(0, 9):
    a = random.choice(numbers)
    liste.append(a)


resultat = "".join(liste)
print(resultat)
octet = int(resultat)
print(octet)

Salut Gabriel,


as tu pensé au padding ... ? 😜 Tu te souviens comme on ajouté un chiffre à un nombre pour qu'il ait une longueur constante ?


Dis moi si ça t'aide sinon je te donne un autre indice =D

Gabriel Trouvé

Mentor

Bah j'ai pensé au zfill par exemple. Mais ça ne fonctionne que sur des str.

Et j'ai le problème quand je converti de str à int.

Et du coup je n'arrive pas à faire la mm chose avec un int.


En gros, tu aurais un indice en plus stp ? lol

Dsl je suis un peu long à la détente des fois

Bonjour Gabriel,


Je vois plusieurs problème dans ton code


Le premier est que la variable octet contient 9 caractères et pas 8 comme demandé

Le deuxième point est que la variable octet doit être de type "str" pour valider l'exercice


SPOIL:

Pour info, voici ma solution


import random
choice_list = ["0", "1"]
octet = "".join(random.choice(choice_list) for _ in range(8))


Bonne continuation

Romuald


Gabriel Trouvé

Mentor

Du coup je ne regarde pas la solution lol.

Ah je pensais qu'il fallait un int ? Si c'est un site je peux utiliser le zfill.

Gabriel Trouvé

Mentor

Mais en fait je susi trop bête je voulais absolument convertir en int. En fait mon exercice était validé depuis hier... lol

Dsl je vous ai embêté pour rien. Et bien vu j'avais 9 chiffres et pas 8 j'avais fait l'erreur.


Merci tt le monde ! :)

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.