PYTHON基础内容笔记

PYTHON基础内容笔记(while for 循环后的break)

这里有一个题目:

1. 求1-100中的素数 我的代码如下:

# test2
l3 = []                   #定义一个列表
for x in range(2,101):    #循环遍历2-101,因为1不是素数所以不遍历
	for y in range(2,x//2+1):  #每次都取2-本身的余
         if x % y == 0:   #如果有数能被除尽
             l3.append(0) #在列表中追加0
             continue     #并且跳出循环,进行下一次循环
         else:			  #若不被整除
             l3.append(1) #在列表中添加1
     if all(l3):          #all函数判断列表中的数是否都为一
         print(x,end = ",") #若都为1,说明都不能被整除,为素数 输出
         l3.clear()		  #然后列表清空进行下一个数的寻找
     else:				  #若列表中有数为0,则不是素数
         l3.clear()		  #然后列表清空进行下一个数的寻找
 print()

2.而老师的代码如下:

 # test2
 l = []
 for i in range(101):
 	if i < 2:
    	continue
    else:
        for j in range(2,i//2+1):
        	if i % j == 0:
           		break
        else:
        	l.append(i)
            

在代码中用到了break,带着用while循环可以实现for循环大多数功能,我将其改为while,结果却不尽如人意,发现while中的break和for中的break作用后代码退出不停。于是做了以下实验:

test1:
在这里插入图片描述
break后显然没有执行最后的else

test2:
在这里插入图片描述
break后显然没有执行最后的else,这个else是在迭代完成后才执行的的,在这里,else迭代后执行和break后执行容易搞混。那么基于这个实验,我们就可以很容易的理解老师写出的代码。
也就是说:一个数一次被除,当它不能被其所有数整除(迭代完成),那么就执行else,将其添加到列表中。若只要有一个数能将其整除,则break,进行下一次循环。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值