3.2 循环结构
3.2.1 for循环与while循环
for循环
for循环一般用于循环次数已知的情况,尤其适用于枚举或遍历序列或迭代对象中元素的集合。
语法格式:
for 取值 in 序列或迭代对象:
循环体
[else:
else子句代码块]
其中,方括号中的else子句可以略去。
示例:
使用for循环计算1+2+3+···+100的结果,代码如下:
>>>s = 0
>>>for i in range(1,101):
s += i
else:
print(s)
5050
while 循环
while循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况。
语法格式:
while 条件表达式:
循环体
[else:
else子句代码块]
其中,方括号中的else子句可以略去。
示例:
用while循环计算1+2+3+···+100的结果,代码如下:
>>>s = i =0
>>>while i <=100:
s += i
i ++
else:
print(s)
5050
【注】在for循环和while循环都能应用的情况下,一般优先考虑使用for循环。
3.2.2 break 和 continue 语句
break 语句
break语句在while循环和for循环中都可以使用,一般放在if选择结构中,一旦break语句被执行,将使得整个循环提前结束。
下面的代码用来计算小于100的最大素数,注意break语句和else子句的用法。
>>> for n in range(100, 1, -1):
for i in range(2, n):
if n%i == 0:
break #结束内循环
else:
print(n)
break #结束外循环
97
删除上面代码中最后一个break语句,则可以用来输出100以内的所有素数。
>>> for n in range(100, 1, -1):
for i in range(2, n):
if n%i == 0:
break
else:
print(n, end=' ')
97 89 83 79 73 71 67 61 59 53 47 43 41 37 31 29 23 19 17 13 11 7 5 3 2
continue 语句
continue语句的作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。
示例:
>>> for i in range(10):
if i%2==0:
continue
print(i, end=' ')
1 3 5 7 9
【注意】过多的break 和 continue 语句会降低程序的可读性。除非break 或 continue 语句让代码更简单或更清晰,否则不要轻易使用。
3.2.3 循环结构的优化
为了优化程序以获得更高的效率和运行速度,在编写循环语句时,应尽量减少循环内部不必要的计算,将与循环变量无关的代码尽可能地提取到循环之外。对于使用多重循环嵌套的情况,应尽量减少内层循环中不必要的计算,尽可能地向外提。
示例:
优化前的代码:
digits = (1, 2, 3, 4)
for i in range(1000):
result = []
for i in digits:
for j in digits:
for k in digits:
result.append(i*100+j*10+k)
优化后的代码:
for i in range(1000):
result = []
for i in digits:
i = i*100
for j in digits:
j = j*10
for k in digits:
result.append(i+j+k)
另外,在循环中应尽量引用局部变量,因为局部变量的查询和访问速度比全局变量略块,在使用模块中的方法时,可以通过将其转换为局部变量来提高运行速度。
例如:
import time
import math
start = time.time() #获取当前时间
for i in xrange(10000000):
math.sin(i)
print('Time Used:', time.time()-start) #输出所用时间
loc_sin = math.sin
start = time.time()
for i in xrange(10000000):
loc_sin(i)
print('Time Used:', time.time()-start)
PS:
本篇主要参考董付国老师的《Python可以这样学》一书,这是一本不错的Python入门书籍,有兴趣的可以买本看看,当然,也可以持续关注我的博客,我会一直更新相关内容的。
本文详细介绍了Python中的循环结构,包括for循环和while循环的使用,以及break和continue语句的控制流程。强调了在for循环和while循环中何时使用break和continue,以及循环结构优化的原则,如减少不必要的计算和提升运行效率。最后,提到了局部变量在循环中的作用以提高程序性能。
程序控制之循环结构&spm=1001.2101.3001.5002&articleId=84325265&d=1&t=3&u=b1b4884096684208afc0b3106d86a4d0)
284

被折叠的 条评论
为什么被折叠?



