内容正文:
项目9 Python循环语句
/// ///
素数又叫质数,表示一个大于1的自然数,除1和它本身外,不能被其他自然数整除。素数在自然界和我们的生活中无处不在:我们可以用素数来计算蝉的生命周期;钟表匠用素数来计算滴答声;航空发动机工程师在设计航空发动机时用素数来平衡空气脉冲的频率。素数是现代计算安全的核心,这意味着素数直接负责几乎所有事情的安全。同样,加密是由素数驱动的。欧基米德用反证法证明了素数有无穷多个。小白同学想用Python的for循环语句快速遍历100以内的所有素数,我们一起来学习吧。
任务17 遍历100以内的素数—for循环语句
任务描述
/// ///
任务分析
利用for循环语句遍历1~100的素数,素数只能被1和自身整除,所以判断一个自然数是否为素数,就要看这个自然数除以所有比它小的自然数时,除1和自身外,如果还能被其他的自然数整除,那么这个自然数就不是素数。遍历100以内的素数程序设计流程图如图3-9所示。
图3-9 遍历100以内的素数程序设计流程图
/// ///
知识准备
利用Python的for循环结构语句(以下简称“for循环语句”)可以遍历循环,从而可以遍历序列结构中的各元素的值。
遍历结构是指遍历对象,通常包括元组、列表、字典等。
for循环结构的执行过程是从遍历结构中逐一提取元素放入循环变量,循环次数就是元素的个数,每次循环中的循环变量就是当前提取的元素值。
可选择的else部分的执行方式和while循环语句类似,若全部元素遍历后结束循环,则执行else后的语句块2; 若执行了break语句而结束循环,则不会执行else后的语句块2。含else的for循环结构流程图如图3-10所示。
3.4 for循环结构
图3-10 含else的for循环结构流程图
/// ///
循环是允许嵌套使用的,即在循环结构中可以再次出现循环语句。
在for循环结构中嵌套for循环结构的格式如下:
3.5 循环的嵌套
for 循环变量1 in 遍历结构1:
for循环变量2 in 遍历结构2
语句块2
语句块1
在使用for循环结构时,最基本的应用就是进行数值循环。例如,实现从1到100的累加,可以通过下面的代码实现:
3.6 常用的数值循环
/// ///
print('计算1+2+3+...+100')
result=0 #保存累加结果的变量
for i in range(1,101):
result+=i #实现累加功能
print(result) #在循环结束时输出累加结果
在上面的代码中,使用了range( )函数,该函数是Python的内置函数,用于生成一系列的整数,多用于for循环语句中,其语法格式如下:
range(start,end,step)
/// ///
根据开发流程图,本任务的代码如下:
任务实施
输出结果如下:
prime =[]; #建立存放素数的空列表
for i in range(2,101): #从2至100进行遍历
for j in range(2,i): #从2至外层循环变量i-1进行遍历
if(i%j==0):
break #如果满足模是0就排除素数且跳出当前循环
else:
prime.append(i) #添加素数到列表中
print(prime)
[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]
/// ///
代码改进:
输出结果如下:
prime=[]
for i in range(1,101):
if i==1: #1非素数,排除
continue
elif i==2: #2是素数,添加到列表
prime.append(i)
else:
if 0 not in [i%j for j in range(2,i)]: #从3到100遍历素数
prime.append(i)
print