我是Python的新手.我有这个简单的代码
a = 0
b = 0
c = 0
while a <= 5:
while b <=3:
while c <= 8:
print a , b , c
c += 1
b += 1
a += 1
Run Code Online (Sandbox Code Playgroud)
和C一起工作
0 0 0
0 0 1
0 0 2
0 0 3
0 0 4
0 0 5
0 0 6
0 0 7
0 0 8
Run Code Online (Sandbox Code Playgroud)
为什么?怎么解决?谢谢!
你的方式可行,但你必须记住在每次迭代时重置循环计数器.
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
Run Code Online (Sandbox Code Playgroud)
第一种方式涉及大量簿记.在Python中,在一系列数字上指定循环的更简单方法是for在xrange*迭代器上使用循环:
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
对于这些技巧和更多,请阅读Dan Goodger的"Code like a Pythonista:Idiomatic Python".