Erster Weg
Ihr Weg wird funktionieren, aber Sie müssen bedenken, die Schleifenzähler bei jeder Iteration zurückgesetzt werden.
a = 0
b = 0
c = 0
while a <= 5:
while b <=3:
while c <= 8:
print a , b , c
c += 1
b += 1
c = 0 # reset
a += 1
b = 0 # reset
c = 0 # reset
Zweiter Weg (Pythonic)
Der erste Weg beinhaltet eine Menge Buchhaltung. In Python, desto einfacher Weg, um eine Schleife über einen Bereich von Nummern angeben, ist eine for
Schleife über einen xrange
* Iterator zu verwenden:
for a in xrange(5+1): # Note xrange(n) produces 0,1,2...(n-1) and does not include n.
for b in xrange (3+1):
for c in xrange (8+1):
print a,b,c
- Hinweis: In Python 3
xrange
jetzt range
genannt wird. (Oder genauer gesagt, 3 Python range
ersetzt range
Python 2.x und xrange
.)
Dritter Weg (am besten)
Die zweite Möglichkeit kann durch die Anwendung von itertools.product()
vereinfacht werden, was in einer Reihe Takes iteriert (listet) und gibt jede mögliche Kombination jedes Elements aus jeder Liste zurück.
import itertools
for a,b,c in itertools.product(xrange(5+1),xrange(3+1),xrange(8+1)):
print a,b,c
Für diese Tricks und mehr, lesen Sie Dan Goodger's "Code Like a Pythonista: Idiomatic Python".
Dies ist nicht, wie Sie Schleifen in Python schreiben sollten. Verwenden Sie 'für einen in Bereich (6)'. – georg
@Ignacio Nicht sicher, ob der Titel einen Sinn ergibt? – agf
@agf: repariert es. –