我寫了這個python函數,它將一個列表作爲參數,並確定列表中的哪些元素是完美的正方形,然後返回這些選擇元素的新列表。完美方塊上的Python程序
這裏是我的功能:
def square(n):
return n**2
def perfectSquares1(L):
import math
m=max(L)
for n in L:
if type(n) is int and n>0:
Result=map(square,range(1,math.floor(math.sqrt(m))))
L1=list(Result)
L2=list(set(L).intersection(set(L1)))
return L2
但是現在我想重新工作了一點:我想寫一個線布爾函數採用N作爲參數,並返回true n是一個完美的正方形,否則返回false。
有什麼建議嗎?我無法想出一個辦法讓它只有一行。
不是我的downvote,但是' perfect_sq(11)'返回True。 – DSM
我怎樣才能讓函數返回'真',雖然? – user2553807
每個數字都是一個完美的正方形,11是11 ** 0.5的完美平方。如果我們談論整數,這個問題只會很有趣。 – Akavall