为了账号安全,请及时绑定邮箱和手机立即绑定

老师,向您请教两个问题。^_^ @清波

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就循环三次?

正在回答

5 回答

(⊙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
        
## 输出
... 省略了, 题主仔细想吧


0 回复 有任何疑惑可以回复我~
#1

夏天的夏7 提问者

非常感谢!
2016-04-22 回复 有任何疑惑可以回复我~

print x+y属于for y这层循环的,属于for x的二层循环,python语法规定每层循环必须在上层循环的基础上缩进相同的空格数,标准的是以4个空格为一级,所以二层循环for y需要缩进8个空格;

for y循环属于for x循环的嵌套循环,因此每当x取到['A','B','C']一个新的值,y就要遍历['1', '2', '3']中所有值,因此需要循环三次,即当x='A'时,y需要依次取‘1’,‘2’,‘3’这三个值,这是python的语法规定。

0 回复 有任何疑惑可以回复我~
#1

夏天的夏7 提问者

谢谢你~
2016-04-20 回复 有任何疑惑可以回复我~

(1)遇到写for循环的时候需要在下一行空出4格再进行print

(2)x是第一重循环,y是第二重循环,for example:当X=A时,需要判断Y这时候要把B中的所有数遍历一遍,才能进行X=B运行。

0 回复 有任何疑惑可以回复我~
#1

夏天的夏7 提问者

谢谢。。。。
2016-04-20 回复 有任何疑惑可以回复我~
  1. python中的缩进的作用类似其他语言的{},用于区分程序块,不缩进就代表和for语句并列关系,无法得到正确结果;

  2. 第二个for语句位置相较第一个for语句也缩进了,第二个for语句相较第一个for语句第一个层级。高层级执行一次,低层级要执行完毕,高层级才能执行第二次。

同在学习,有不懂,再交流,谢谢!

0 回复 有任何疑惑可以回复我~
#1

erudintros

第二个for语句位置相较第一个for语句也缩进了,第二个for语句相较第一个for语句低一个层级。高层级执行一次,低层级要执行完毕,高层级才能执行第二次。
2016-04-20 回复 有任何疑惑可以回复我~
#2

夏天的夏7 提问者

谢谢啦。。。
2016-04-20 回复 有任何疑惑可以回复我~

没看懂第一个问题。

第二个x保持一个固定的数的时候,y会取三个不同的值做运算。

教程这话讲得不是很严谨,不要太在意

0 回复 有任何疑惑可以回复我~
#1

夏天的夏7 提问者

谢谢~
2016-04-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

老师,向您请教两个问题。^_^ @清波

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信