py学习之路8---循环

循环

有时候需要我们执行大量相同代码,这时候就需要循环来帮忙了,py提供两种循环方式“while”和"for"。

while

while运算首先检查它的运算条件(while和:之间),如果为真,它就执行它的代码块,然后再次检查他的运算条件,看运算条件是否仍为真,如果是,将重复执行以上步骤,如果为否,py将离开缩进部分代码,继续执行下面的代码。一般使用一个变量作为运算条件:

>>> i = 10;
>>> while i:
	print("now, i is:")
	print(i)
	i = i - 1

	
now, i is:
10
now, i is:
9
now, i is:
8
now, i is:
7
now, i is:
6
now, i is:
5
now, i is:
4
now, i is:
3
now, i is:
2
now, i is:
1
当i变为0时,判断条件为否,退出循环。


for...in...
它和while非常相似,但它整合了用变量控制循环的功能,在第一部分for中,创建了一个变量,在第二部分in中,提供一个序列(列表,元组),或range:

>>> for i in range(5,0,-1):
	print("now, i is:")
	print(i)
	i = i - 1

	
now, i is:
5
now, i is:
4
now, i is:
3
now, i is:
2
now, i is:
1
range里的三个值表示i的起始值,终止值,和步长(也就是梅运行一次就给i加上这个值)。range有一个缩略版本:

>>> for i in range(3):
	print("now, i is:")
	print(i)
	i = i - 1

	
now, i is:
0
now, i is:
1
now, i is:
2
可以只给range一个值,这时起始值默认为0,步长默认为1,提供的值作为终止值。

用列表循环:

>>> for i in a:
	print("now, i is:")
	print(i)

	
now, i is:
2
now, i is:
13
now, i is:
7
now, i is:
2
now, i is:
1
循环次数为列表长度,将列表中的值依次赋给i。


终止循环和继续循环
“无穷循环”指的是一段永远重复的代码,简单的例子:

while True:

.......

这样的代码也有其意义,但如何退出就是个大问题,py提供了break关键词用来退出循环。

i = 10
>>> while(i):
	if i == 5:
		break
	print("now, i is:")
	print(i)
	i = i - 1

	
now, i is:
10
now, i is:
9
now, i is:
8
now, i is:
7
now, i is:
6

当i等于5时满足了if的条件,成功跳出了循环。注意break只能跳出一层循环:

>>> for i in range(5):
	print(i);
	for l in range(5):
		break
		print("break")

		
0
1
2
3
4
break跳出了l的循环,但还是在执行i的循环。


我们还可以用continue继续循环,继续循环指跳过循环代码块剩余部分,直接开始下一轮循环:

>>> a = (2,13,7,2,1)
>>> for i in a:
	if i == 2:
		continue
	print("now, i is:")
	print(i)

	
now, i is:
13
now, i is:
7
now, i is:
1
当i等于2的情况都被跳过了。


循环和else

可以在循环后跟上一个else,用于处理循环一次也没有被执行的情况:

<pre name="code" class="python">>>> while False:
	break
else:
	print("nothing has been done")

	
nothing has been done

 注意,哪怕之执行一个break也算作循环被执行了: 

>>> while True:
	break
else:
	print("nothing has been done")

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值