Convertir un nombre binaire en carrés noirs et blancs
houpla -
Bonsoir,
J'aimerais renvoyer la représentation binaire d'un nombre (par exemple 1101001), en vue de dessiner des carrés noir et blanc à l'aide de turtle (1 pour les carrés blancs, 0 pour les carrés noirs).
Mais je ne vois pas comment procéder pour exploiter cette séquence binaire avec turtle. Voici ce que j'ai écrit :
from turtle import * def dec_bin(nombre): binaire = '' while nombre // 2 != 0: binaire = str(nombre % 2) + binaire nombre = nombre//2 binaire = str(nombre % 2) + binaire return binaire nombre = int(input("Entrer un nombre :")) print(dec_bin(nombre))
- Convertir un nombre binaire en carrés noirs et blancs
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Binaire - Guide
- Convertir epub en kindle - Guide
- Convertir youtube en mp3 avec audacity - Guide
- Nombre de jours entre deux dates excel - Guide
2 réponses
Bonjour, je ne suis pas certain d'avoir bien saisi ta demande, mais pour relier 0 à tel commande et 1 à une autre, un dictionnaire suffit.
ex. avec 2 fonctions que tu auras à remplacer par tes fonctions turtle.
def commande_0(): print('zéro') def commande_1(): print('un') cmds = {'0':commande_0, '1':commande_1} s = '0011010' for c in s: cmds[c]()
Bonjour, déjà, ta fonction on peut la remplacer en utilisant la fonction native de python : bin()
De plus que ce soit des couleurs ou des commandes, la méthode est identique, passer par un dict pour lier ces éléments.
Je suis nul en turtle, il est bien plus préférable d'utiliser directement tkinter qu'un bibliothèque telle que turtle n'ayant qu'un but purement pédagogique et ayant pour finalité que de faire des choses simplistes.
Donc on obtient rapidement quelque chose comme
import turtle WINDOW_WIDTH = 400 WINDOW_HEIGHT = 400 COLORS = {'0': 'white', '1': 'black'} def draw_square(size, color): turtle.color(color) turtle.forward(size) turtle.right(-90) turtle.forward(size) turtle.right(-90) turtle.forward(size) turtle.right(-90) turtle.forward(size) turtle.right(-90) number = int(input("Entrer un nombre :")) number_bin = str(bin(number))[2:] turtle.screensize(canvwidth=400, canvheight=WINDOW_WIDTH, bg='lightBlue') turtle.setworldcoordinates(-1, WINDOW_HEIGHT, WINDOW_WIDTH, -1) square_size = 20 square_spacing = 5 turtle_pos = [10, 10] for n in number_bin: turtle.up() turtle.goto(turtle_pos) turtle.pendown() draw_square(square_size, COLORS[n]) turtle_pos[:] = [n + square_size + square_spacing for n in turtle_pos] turtle.mainloop()
Évidemment, il faudra modifier pour changer la position de traçage des rectangles, et adapter leur dimensions en fonction de la longueur du binaire.
Bonjour,
Merci ! Pour mieux expliquer mon problème :
Je ne sais pas si c'est plus précis ^^