第一種方式
你的方式將工作,但你必須記住要重置在每次迭代循環計數器。
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
方式二(Python化)
第一種方法涉及到很多簿記。在Python中,指定了號碼範圍的循環更簡單的方法是通過一個xrange
*迭代器使用for
循環:
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
- 注:在Python 3,
xrange
現在被稱爲range
。 (或者更準確地說,Python 3中range
取代的Python 2.x的的range
和xrange
。)
第三方式(最佳)
的第二種方法可以通過應用itertools.product()
,這需要在若干被簡化迭代(列表)並返回每個列表中每個元素的每個可能的組合。
import itertools
for a,b,c in itertools.product(xrange(5+1),xrange(3+1),xrange(8+1)):
print a,b,c
對於這些技巧和更多,請閱讀Dan Goodger's "Code Like a Pythonista: Idiomatic Python"。
這不是你應該如何在Python中編寫循環。使用'範圍(6)'。 – georg 2012-03-31 13:37:16
@Ignacio不知道標題有什麼意義嗎? – agf 2012-03-31 13:43:52
@agf:修正它。 – 2012-03-31 14:02:19