filter运行出现 判断素数


刚接触filter时  运行总是出现<filter object at 0x000001B68F052828>  得不到想要的数据

后来发现是因为filter的结果是一个数组 需要 list 帮助

后来将print(f)  改为  print(list(f))  成功~

代码:def fil(n):

     return n%2==1

   f=filter(fil,range(100))

   print(list(f))

结果:

将100以内的奇数算出来了

 

练习:将100以内的素数求出

分析:什么是素数。即 质数  只能被本身和1整除的数

代码:

方法一:

import math
def prime(n):
flag=0
for i in range(2,int(math.sqrt(n)+1)):
if n%i==0: #判断是不是素数 不是素数就将1赋给flag
flag=1
break
if flag != 1: #若要判断素数 只需将flag!=1 同样的flag==1 则是非素数的值
return n
f=filter(prime,range(100))
print(list(f))
方法二:
num=[]; #定义一个空数组  用来存放数字
n=1
for n in range(1,100):
i=2
for i in range(2,n):
if n%i==0: #判断是否为素数 若是则break
break
else:
num.append(n)
print(num)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM