Bug programme simple avec python

Résolu
yo!da Messages postés 146 Statut Membre -  
yo!da Messages postés 146 Statut Membre -
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 808 Statut Membre 131
 
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 808 Statut Membre 131
 
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 808 Statut Membre 131
 
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 146 Statut Membre 8
 
Merci pour toutes ces explications cela m'aidera bien je marque le sujet comme résolu^^
0