以往的笔记,记录一下
前言
一、for循环简介:
for i in xx,表示i依次一个个将xx里面的值取出来
二、for…else…
1、简介:
for也可以和else使用
什么时候用这个else?
当for j in xx时xx中没有数据或依次取完了,就会使用else
这一种格式,是Python所独有的
for i in range(0,2):
print 1
else:
print 0
2、这里也顺便介绍一下continue和break
前提:下面所说的当前循环:continue或break所在的循环称为当前循环
(1)continue
重点:continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环
但如果是在else中执行的,就表示当前循环for中已经没有可用的数了,例如下面的例子中,continue继续进行父循环的下一轮循环,而非当前循环(也就是子循环),why?因为for循环只要执行了else代码,就表示当前循环已经执行完毕了,只能找当前循环的上个循环,这里只有父循环,所以就它喽。设个断点,单步执行一下就会明白了
for j in range(0,2): #注:这个是"父循环",通俗点说就是父亲
for i in range(0,3): #注:这个是"子循环",通俗点说就是儿子,父循环中可以有多个儿子~~
print(1)
else:
continue
像下面的这个,continue就是先当前循环的上个循环,最后才父循环
for j in range(0,2):
for k in range(0, 3):
for i in range(0,3):
print(1)
else:
continue
下面这个例子是帮助理解的,也单步执行一下
for j in range(0,2):
for i in range(0,3):
print(1)
continue #这里它不会执行父循环,因为子循环还没有结束,他还是会继续执行
(2)break
重点:break语句用来终止循环语句,但如果有嵌套循环,break表示跳出(终止)当前循环(遇到了break,就不继续执行当前循环的任何代码),但继续执行当前循环外下面同级的循环;如果没有同级的循环就执行当前循环的上个循环;若都没有,就结束循环
例:
for i in range (0,2):
print(i)
#break #注:如果break在这里,那么直接返回0,因为跳出了整个循环
for j in range (3,6):
print(j)
break #注:如果break在这里,相当于跳出这个子循环,也就是嵌套循环,并没有退出整个循环,所以最后返回0 3 1 3
下面对比一下下面的两种代码,你会更好地理解,下面的都使用单步对比
第一种:如果没有同级的循环就执行当前循环的上个循环
#for j in range (3,6):是for k in (8, 10):的子循环
#break会先跳到for k in (8, 10):
for i in range (0,2):
print(i)
for k in (8, 10):
print(k)
for j in range (3,6):
print(j)
break
第二种:执行当前循环外下面同级的循环
#for j in range (3,6):与for k in (8,10):同级别
#break会先跳到for k in (8,10):
for i in range (0,2):
print(i)
for j in range (3,6):
print(j)
break
for k in (8,10):
print(k)
第三种:因为for k in (8,10):是当前循环的子循环,所以不会执行。都终止当前循环了,怎么执行当前循环下面的代码?
#for k in (8,10):是for j in range (3,6):的子循环
for i in range (0,2):
print(i)
for j in range (3,6):
print(j)
break
for k in (8,10):
print(k)
记住,只要代码和for排头并齐,说明这段代码不属于当前与其并齐的for循环内!!!