filter运行出现 <filter object at 0x000001B68F052828> 判断素数

刚接触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)

猜你喜欢

转载自www.cnblogs.com/zhanshan/p/9262884.html
今日推荐