Bug programme simple avec python

Résolu
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

4 réponses

  1. 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.
    1. 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.
      1. 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)
        1. Merci pour toutes ces explications cela m'aidera bien je marque le sujet comme résolu^^