我正在编写一个函数,该函数将返回一个平方数列表,但如果该函数采用参数('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