Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!fdn.fr!news.ortolo.eu!news.izac.org!reader From: Benoit Izac Newsgroups: fr.comp.lang.python Subject: Re: =?utf-8?Q?G=C3=A9rer?= plusieurs boucles. Date: Sat, 20 Nov 2021 15:33:52 +0100 Message-ID: <87k0h2c2wf.fsf@izac.org> References: Reply-To: benoit.izac@free.fr Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: keg.izac.org; logging-data="3225861"; mail-complaints-to="usenet@izac.org" Bytes: 2395 Lines: 51 Bonjour, Le 20/11/2021 à 13:56, Mat a écrit dans le message  : > Bonjour, je suis en train ce créer un programme afin de convertir des > bases 2, 10 et 16 entre elles. > Pour ce faire, j'ai eu nottament besoin d'uttiliser 2 chaines. > Je voudrais pouvoir lescontroler distinctement car a un endroit. Je fait > breakpour arreter une boucle, et c'est l'autre qui s'arrete. > voila mon programme avec l'endroit problematique entre # […] Je n'ai pas tout lu, c'est trop compliqué, ça fait mal à la tête ;-) [Non testé c'est juste pour donner l'idée] def convert(nb, base_in, base_out): nb_int = int(nb, base_in) # on converti en un entier if base_out == 2: return bin(nb_int) # représention binaire if base_out == 16: return hex(nb_int) # représentation hexadécimale return nb_int while True: base_entree = int(input("Base du nombre en entrée ? ")) base_sortie = int(input("Base du nombre en sortie ? ")) nombre_entree = input("Nombre à convertir ? ") print(convert(nombre_entree, base_entree, base_sortie)) Sinon, pour ton problème, je pense qu'il te faut ajouter une condition après ton for, un truc du genre if tout_est_ok: break avec tout_est_ok passé à True dans ton for avant ton break. Mais ça reste très compliqué. Dès que l'on voit les répétitions nombre = int(input("nombre")) convert = int(input("convertion")) on se dit qu'il y a un problème. Après, tu peux t'amuser à recoder bin() et hex() pour le fun, c'est un bon exercice. -- Benoit Izac