老师,向您请教两个问题。^_^ @清波
for x in ['A', 'B', 'C']: for y in ['1', '2', '3']:
print x + y
x 每循环一次,y 就会循环 3 次,这样,我们可以打印出一个全排列:
A1
A2
A3
B1
B2
B3
C1
C2
C3
您看上面的代码和结果。我有两个问题。首先是:print x + y 为什么必须这样缩进?我在网上检索了,也回顾了教程,没明白。第二个问题是:为什么x 循环一次,y就循环三次?
for x in ['A', 'B', 'C']: for y in ['1', '2', '3']:
print x + y
x 每循环一次,y 就会循环 3 次,这样,我们可以打印出一个全排列:
A1
A2
A3
B1
B2
B3
C1
C2
C3
您看上面的代码和结果。我有两个问题。首先是:print x + y 为什么必须这样缩进?我在网上检索了,也回顾了教程,没明白。第二个问题是:为什么x 循环一次,y就循环三次?
2016-04-20
(⊙o⊙)… 我真不是老师。。 。 还是直接代码格式列解释吧:
for x in ['A', 'B', 'C']: for y in ['1', '2', '3']: print x + y ## 缩进关系呢,就是依次递进的, 为什么 print 要随进到第二个for里面, 这是为了演示多层for 循环, ## 多层循环打字不太好讲,我尽量表达的通俗些,笔力有限,希望题主能看明白吧。 ## 首先说最外层的for 循环,遍历一个 三个元素的列表,那么它里面的代码一定是会执行三遍的,举例如下 for x in ['A', 'B', 'C']: print 23 ## 输出 23 23 23 ## 特意举一个输出和 循环无关的例子,来说明 for 循环里面的代码会执行 和列表长度同样的次数(此处是3) ## 那我们在扩展一下,双层 无关的例子: for x in ['A', 'B', 'C']: print 11 for y in ['1', '2', '3']: print 23 ## 输出 11 23 23 23 11 23 23 23 11 23 23 23 ## 上面这个例子,可能有些复杂? 呃 也还行吧。 好了下面在讲一下,在每一次循环中 x 的值都是固定,即便 ## 是在其内部的另一个for 循环中调用,比如说: for x in ['A', 'B', 'C']: print 'outer loop:',x for y in ['1', '2', '3']: print 'inner loop:',x ##输出 outer loop: A inner loop: A inner loop: A inner loop: A outer loop: B inner loop: B inner loop: B inner loop: B outer loop: C inner loop: C inner loop: C inner loop: C ## 解释到这里, 多层循环已经不能再仔细了。。。, 贴开头的代码 for x in ['A', 'B', 'C']: for y in ['1', '2', '3']: print x + y ## 输出 ... 省略了, 题主仔细想吧
举报