-5

编写一个名为 squares 的函数,它接受一个名为 n 的参数。如果 n 是一个正整数,该函数返回一个列表,该列表由 1 到 n 的数字的平方组成。否则(即,如果 n 不是正整数)该函数应该返回一个空列表。

即使使用无意义的参数调用该函数,该函数也能正常工作。换句话说,诸如 squares('Iowa')、squares(range(10)) 和 squares([1, 2, 3]) 之类的函数调用应该返回一个空列表。

def sqrt(x): ans = 0 if x >= 0: while ans*ans < x: ans+=1 if ans *ans == x:return ans;

return -1;

def square(n): i=0 blist= [] ans = list(range(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 = square('男孩') 打印(i)

4

1 回答 1

4

要定义一个函数,你做

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

要检查 n 是整数、字符串(如Iowa)还是列表(如range(10)),请使用isinstance(提示:函数返回 True 或 False)。在此处使用if/else语句来确定函数是返回空列表[]还是继续:

使用另一个if/else语句来确定一个数字是正数还是负数(如果它大于 0 则为正数,否则为负数)

要得到一个数字的平方,那么,你如何计算出 2 的平方是多少?还是三平方? **

然后,您可以使用列表推导来获得 1 和 n 之间的每个数字的平方(但是如何获得 1 和 n 之间的数字列表?您需要一个范围或其他东西)

不要忘记return物品;)

于 2013-07-08T03:05:29.307 回答