剛接觸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)
