Sujet : Re: Gérer plusieurs boucles.
De : use.reply.to (at) *nospam* INVALID.ADDRESS (Benoit Izac)
Groupes : fr.comp.lang.pythonDate : 20. Nov 2021, 16:33:52
Autres entêtes
Message-ID : <87k0h2c2wf.fsf@izac.org>
References : 1
Bonjour,
Le 20/11/2021 à 13:56, Mat a écrit dans le message
<
AIWdndYoisELbQX8nZ2dnUU798zNnZ2d@giganews.com> :
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