2013-07-08 35 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