2013-07-08 36 views
-5

編寫一個名爲n的函數,該函數接受名爲n的參數。如果n是一個正整數,該函數返回一個由從1到n的數字的平方組成的列表。否則(即,如果n不是正整數)該函數應該返回一個空列表。生成從1到n的正方形列表

即使該函數被調用了無關參數,該函數也能正常工作。換句話說,諸如正方形('愛荷華州'),正方形(範圍(10))和正方形([1,2,3])的函數調用應該返回一個空列表。

DEF的sqrt(X): ANS = 0 如果x> = 0: 而ANS * ANS < X: ANS + = 1 如果ANS * ANS == X:返回ANS;

return -1; 

DEF平方(N): I = 0 blist = [] ANS =列表(範圍(1,n))的

if (n < 0): 
    return blist 
if isinstance(ans, str): 
    return blist 
while(i < len(ans)): 
    if(sqrt(ans[i])!= -1): 
     blist.append(ans[i]) 
    i = i+1 
return blist 

I =平方( '男孩') 打印(I)

+1

嘗試,而不是要求我們寫的代碼,並崗位的具體問題。 –

+0

這個確切的問題昨天被問到。 – Blender

+0

@Blender我真的記得那個...... – TerryA

回答

4

要定義一個函數,你做

def squares(n): # Where n is the parameter/argument 

若要檢查n是整數或字符串(如Iowa)或列表(如range(10)),請使用isinstance(提示:函數返回True或False)。這裏使用一個if/else語句以確定函數或者返回一個空列表[]或繼續:

使用另一個if/else語句來確定一個數是正數還是負數(如果是大於0它是積極的,否則它的負)

要得到一個數的正方形,那麼,你會如何弄清楚兩平方是什麼?還是三平方? **

然後,您可以使用列表理解來獲得一個和之間的每個數的平方N(但你怎麼能夠讓一個和n之間的數字列表?你需要一個範圍或東西)

不要忘了return的項目;)

+0

沒有寫代碼的好幫手:) – icedwater

+0

@icedwater :)。 – TerryA

+0

好吧我找出它的大部分,但我不知道如何使用isinstance我正在讀它感謝您的幫助 – user2559235