素数 就是只能被本身和1整除
之前没接触for break else的用法,实现的方式如下,思路就是一个list中,如果一个数能被自身和1外的数整除,就从list中移除这个数,最后就得到了素数list
def example3():
value=[i for i in range(1,101)]
for i in range(3,len(value)+1):
for j in range(2,i):
if i%j==0:
value.remove(i)
break
return value
之所以想到用remove,是因为之前爬坑的写法是这样的
def example4():
for num in range(1,101):
if num>1:
for i in range(2,num):
if num%i==0:
break
else:
print (num)
最后一直纠结于输出的num存在重复,虽然可以用一个list(set(list))来去重,但是感觉有点繁琐,不是简单的写法,后来看到了for break else的写法,demo如下:
def example4():
for num in range(1,101):
if num>1:
for i in range(2,num):
if num%i==0:
break
else:
print (num)
和上面的写法唯一的区别就是else和for对齐了,这种写法的逻辑是for中执行 如果break未被执行,则进入else中,这样就是如果num%i 不存在==0的时候,就会去执行print num了,这样能不重复的输出素数num了。挺好用~~~~~~~