Bug programme simple avec python

Résolu/Fermé
yo!da Messages postés 126 Date d'inscription samedi 5 septembre 2009 Statut Membre Dernière intervention 23 février 2013 - 26 avril 2012 à 19:32
yo!da Messages postés 126 Date d'inscription samedi 5 septembre 2009 Statut Membre Dernière intervention 23 février 2013 - 27 avril 2012 à 17:37
Bonjour,
Voilà, j'ai créé un petit prog en ligne de commande qui affiche les tables de multiplications

coef = 1
while 1:
print("Entrez le nombre dont vous voulez connaître les multiples.")
nbr = input()
nbr = int(nbr)
print "Le nombre que vous avez choisi est" ,nbr
print("continuer? 1/0")
choix = input()
choix = int(choix)
if choix == 0:
continue
else:
while coef<=10:
print coef,"X",nbr,"=",coef*nbr
coef+=1
Je suis débutant oui :D seulement je ne sais pas pourquoi, le programme marche bien comme suit:
Entrez le nombre dont vous voulez connaître les multiples.
7
Le nombre que vous avez choisi est 7
continuer? 1/0
1
1 X 7 = 7
2 X 7 = 14
3 X 7 = 21
4 X 7 = 28
5 X 7 = 35
6 X 7 = 42
7 X 7 = 49
8 X 7 = 56
9 X 7 = 63
10 X 7 = 70
Entrez le nombre dont vous voulez connaître les multiples.
2
Le nombre que vous avez choisi est 2
continuer? 1/0
1
Entrez le nombre dont vous voulez connaître les multiples.

Alors 2 choses:
1) je n'arrive pas à faire des choix o/n
car il m'affiche "name o not defined"

2)La deuxième fois il recommence au continue même si je tape 1

Répondez-moi SVP.

Config: xubuntu 10.10

A voir également:

4 réponses

heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 131
Modifié par heyquem le 26/04/2012 à 20:11
Remplace la ligne

print "Le nombre que vous avez choisi est" ,nbr 

par
print "Le nombre que vous avez choisi est" ,nbr," et coef vaut",coef

et fais tourner.
0
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 131
26 avril 2012 à 21:11
Ton code peut être condensé:

while 1: 
    nbr = int(input("Entrez le nombre dont vous voulez connaître les multiples: "))  
    if input("Le nombre que vous avez choisi est %d\n"
                 "continuer? 1/0 " % nbr)=='1':
        coef = 1
        while coef<=10: 
            print coef,"X",nbr,"=",coef*nbr 
            coef+=1 



Note que quand on a une boucle while avec un nombre de tours prévisibles, on la remplace par une boucle for.
0
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 131
Modifié par heyquem le 26/04/2012 à 21:27
Et pour montrer ce qu'on peut faire avec Python:

mess = "Le nombre que vous avez choisi est %d\ncontinuer? 1/0 "
while 1:
    nbr = int(input("Entrez le nombre dont vous voulez connaître les multiples: "))
    for coef in xrange(1, 10 if input(mess % nbr)=='1' else 0):
        print "%d X %d = %d" % (coef,nbr,coef*nbr)
0
yo!da Messages postés 126 Date d'inscription samedi 5 septembre 2009 Statut Membre Dernière intervention 23 février 2013 8
27 avril 2012 à 17:37
Merci pour toutes ces explications cela m'aidera bien je marque le sujet comme résolu^^
0