break和continue的流程优化
#break--可以用来立即退出循环语句
#continue--可以用来跳过当次循环
break和continue都是离他最近的循环起作用
#练习优化
from time import *
begin=time()
代码
end=time()
#计算程序的时间
print('程序执行了',end-begin,'秒')
i=2
while i<=10000:
#创建一个变量记录i得状态,默认认为i是质数
flag=True
#i是否是质数
#获取所有可能成为i得因数得数
j=2
while j<i:
if i%j==0:
#证明i能被j整除,证明i不是质数,修改flag为False
flag=False
j+=1
#验证结果并输出
if flag:
print(i)
i+=1
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
上文代码花费了9.63秒
#优化
i=2
while i<=10000:
#创建一个变量记录i得状态,默认认为i是质数
flag=True
#i是否是质数
#获取所有可能成为i得因数得数
j=2
while j<i**0.5#(第二次优化,少去多余后面尝试整除的j范围):
if i%j==0:
#证明i能被j整除,证明i不是质数,修改flag为False
flag=False
break #(优化跳出循环(只要有一个j整除了i就不用再继续整除其他j)第一次运行变成1.1秒)
j+=1
#验证结果并输出
if flag:
print(i)
i+=1
思路案例:36的因数
2 18
3 12
4 9
6 6
j<根号i就好了,不用全部去尝试整除
上文流程优化后只花费了0.05秒!

浙公网安备 33010602011771号