您的位置:首页 > 编程语言 > Python开发

Python基础06 循环

2017-08-19 10:43 393 查看
作者:玉树【林】风

转自:http://techlin.cn

欢迎转载,也请保留这段声明。

 

循环结构在编程中的意义

循环结构可以帮助我们优雅的完成重复性劳动,不必为了一些规律性的重复工作耗费过多的精力。

如果我们想要计算0~100之和,我们只需要简单的使用循环结构写几行代码即可求出结果,不需要写100行加法命令。

 

 

for循环

Python中的循环可以分为for循环和while循环两种,我们先来看一下for循环的用法。

sum = 0

for i in range(1, 100 + 1):
sum += i

print(sum)


输出为

5050

上面的4行代码完成了从0~100的求和运算。

第3行使用了for循环结构,格式为 for 元素 in 集合 :。在这里,我们使用了range函数,这个函数返回了正整数1~100的集合。

range的使用方法如下:

print(range(10)) # 返回{ x | x∈Z, x∈[0, 10) },即0~9的整数集合

print(range(3, 10)) # 返回{ x | x∈Z, x∈[3, 10) },即3~9的整数集合

print(range(3, 10, 2)) # 返回{ x | x∈Z, 3≤x<10, x % 2 = 1 },即从3开始,间隔为2,并且小于10的整数集合
在第1次循环开始时,i取值为range集合的第1个元素并进入循环体,在第4行中对变量sum进行加赋值操作,之后代码回到第3行,i取值为range集合的第2个元素。以此类推,直到取完range集合的最后一个元素,代码跳出循环,运行循环体外第6行的输出操作。

for循环运行的次数与集合元素数量保持一致。

 

while循环

和for循环的方式不同,while循环是通过条件来控制循环的。

i = 1
sum = 0

while i <= 100:
sum += i
i += 1

print(sum)
上面的代码同样完成了从0~100的求和运算。

while循环的语法结构为 while 条件 : ,条件为True时进入循环体,直到条件为False时跳出循环。

这里我们注意到,使用while进行累加操作时,我们除了需要定义用来保存结果的变量sum外,我们还需要定义一个游标变量i,并且在循环体中对i进行加赋值操作,如果删除第5行代码,程序将进入死循环。死循环会无休止的运行下去,耗费大量的系统性能。因此当我们使用while循环时,一定要注意死循环问题。

 

break & continue 的使用

break可以跳出当前正在进行的循环。

例如:我们要从一个列表([6, 9, 4, 3, 7, 11])中找到第一个小于5的数字,并返回这个数字在列表中的位置。

上面的例子要求我们返回列表中第一个小于5的元素的位置。通过观察我们发现,小于5的元素出现在列表中的第3位,列表的元素一共6个,如果全部循环完毕需要进行6轮循环。假如我们的列表元素个数为10000条,那么我们需要循环10000次,但是在第3次循环时我们就已经得到结果了,之后的循环没有任何意义。在这种情况下,我们可以使用break来跳出循环。

# For循环写法
list = [6, 9, 4, 3, 7, 11]
index = 1 # 小于5的数字所在的位置

for num in list :
if num < 5 :
break
else :
index += 1

if index > len(list) :
print('列表中没有小于5的数字')
else :
print('列表中第一个小于5的数字在第%d位' % index)
# While循环写法
list = [6, 9, 4, 3, 7, 11]
index = 1      # 小于5的数字所在的位置

while index <= len(list) :
num = list[index - 1]
if num < 5 :
break
else :
index += 1

if index > len(list) :
print('列表中没有小于5的数字')
else :
print('列表中第一个小于5的数字在第%d位' % index)

在这里我们使用了Python提供的len函数,len函数需要一个集合作为输入参数,返回集合中元素的数量。

结果均为

列表中第一个小于5的数字在第3位

 

continue可以忽略循环体中在其之后的代码,直接进入下一轮循环。

例如:我们要从一个列表([6, 9, 4, 3, 7, 11])中找到所有小于5的数字,并返回这些数字之和。

# For循环写法
list = [6, 9, 4, 3, 7, 11]
sum = 0 # 小于5的数字之和

for num in list :
if num >= 5 :
continue
sum += num

print('数组中小于5的数字之和为%d' % sum)
# While循环写法
list = [6, 9, 4, 3, 7, 11]
index = 0
sum = 0      # 小于5的数字之和

while index < len(list) :
num = list[index]
index += 1
if num >= 5 :
continue
sum += num

print('数组中小于5的数字之和为%d' % sum)
输出为
数组中小于5的数字之和为7

 

总结

今天我们学习了for循环和while循环。

掌握了break和continue的使用场景。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python python基础