我正在编写一个函数,该函数将返回一个平方数列表,但如果该函数采用参数('apple')或(range(10))或一个列表,则将返回一个空列表。我已经完成了第一部分,但无法弄清楚如果参数n不是整数,如何返回空集-我不断收到错误:无法排序的类型:str()> int()
我知道字符串不能与整数进行比较,但是我需要它来返回空列表。

def square(n):

    return n**2

def Squares(n):

    if n>0:
        mapResult=map(square,range(1,n+1))
        squareList=(list(mapResult))
    else:
        squareList=[]

    return squareList

最佳答案

您可以在python中使用type函数来检查变量的数据类型。为此,您可以使用type(n) is int来检查n是否为所需的数据类型。另外,map已经返回一个列表,因此不需要强制转换。所以...

def Squares(n):
    squareList = []

    if type(n) is int and n > 0:
        squareList = map(square, range(1, n+1))

    return squareList

09-08 00:34