2009-09-14 9 views
1

Je suis débutant en programmation python. J'ai écrit le programme suivant mais il ne s'exécute pas comme je le veux. Voici le code:Boucle imbriquée en Python

b=0 
x=0 
while b<=10: 
    print 'here is the outer loop\n',b, 
    while x<=15: 
     k=p[x] 
     print'here is the inner loop\n',x, 
     x=x+1 
    b=b+1 

quelqu'un peut-il m'aider ?? Je serai reconnaissant en effet! Cordialement, Gillani

+4

Que voulez-vous faire? En savoir plus –

+0

Quelle est la sortie? Qu'espériez-vous que ce soit? – erelender

+0

que voulez-vous avec le code? – ariefbayu

Répondre

24

Vous ne savez pas quel est votre problème, peut-être que vous voulez mettre ce x=0 juste avant la boucle interne?

Votre code ne semble pas tout à distance comme le code Python ... comme des boucles qui sont mieux fait comme ceci:

for b in range(0,11): 
    print 'here is the outer loop',b 
    for x in range(0, 16): 
     #k=p[x] 
     print 'here is the inner loop',x 
+3

plage (0,11) est mieux portée écrite (11). Zéro est la limite inférieure par défaut. – Triptych

+1

Encore mieux est d'utiliser 'xrange (11)'. 'range' crée une liste entière et la renvoie à l'appelant. 'xrange' renvoie une fonction de générateur, qui retarde l'allocation des éléments jusqu'à ce qu'ils soient demandés. Pour un tableau de 16 éléments, ce n'est probablement pas une énorme différence. Cependant, si vous comptez 10 000, alors 'xrange' est définitivement meilleur. – Nathan

0

Exécution de votre code que je reçois une erreur si « « p » est pas défind "ce qui signifie que vous essayez d'utiliser le tableau p avant que quelque chose ne s'y trouve.

Retrait que cette ligne permet l'exécution de code avec la sortie de

here is the outer loop 
0 here is the inner loop 
0 here is the inner loop 
1 here is the inner loop 
2 here is the inner loop 
3 here is the inner loop 
4 here is the inner loop 
5 here is the inner loop 
6 here is the inner loop 
7 here is the inner loop 
8 here is the inner loop 
9 here is the inner loop 
10 here is the inner loop 
11 here is the inner loop 
12 here is the inner loop 
13 here is the inner loop 
14 here is the inner loop 
15 here is the outer loop 
1 here is the outer loop 
2 here is the outer loop 
3 here is the outer loop 
4 here is the outer loop 
5 here is the outer loop 
6 here is the outer loop 
7 here is the outer loop 
8 here is the outer loop 
9 here is the outer loop 
10 
>>> 
+0

merci je l'ai eu travailler ........... merci à tous ..........! – Gillani

10

Parce que vous avez défini les x en dehors de l'extérieur en boucle son champ d'application est également en dehors de la boucle externe et qu'il ne soit pas remis à zéro après chaque boucle externe.

Pour résoudre ce problème déplacer le defixition de x à l'intérieur de la boucle extérieure:

b = 0 
while b <= 10: 
    x = 0 
    print b 
    while x <= 15: 
    print x 
    x += 1 
    b += 1 

une façon plus simple avec des bornes simples comme cela est d'utiliser pour les boucles:

for b in range(11): 
    print b 
    for x in range(16): 
    print x 
0

Vous devez réinitialiser votre variable x après le traitement de la boucle interne. Sinon, votre boucle externe se déroulera sans déclencher la boucle interne.

b=0 
x=0 
while b<=10: 
    print 'here is the outer loop\n',b, 
    while x<=15: 
     k=p[x] #<--not sure what "p" is here 
     print'here is the inner loop\n',x, 
     x=x+1 
x=0  
b=b+1