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