我正在编写一个函数,它将返回一个正方形数字列表,但如果函数接受参数(“apple”)或(范围(10))或列表,则将返回一个空列表。我已经完成了第一部分,但是如果参数n不是整数,我就不知道如何返回空集-我一直收到一个错误:unorderable types:str()>;I n t() 我知道字符串不能与整数进行比较,但我需要它返回空列表。
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
已经返回了一个列表,因此不需要转换。因此。。。不能像以前那样将字符串与整数进行比较。如果要检查
n
是否为整数,可以使用isinstance()
:现在,如果字符串或列表作为参数给定,函数将立即返回空列表
[]
。否则,它将继续正常运行。一些例子:
将返回:
您可以使用
or
将导致返回空列表的所有条件链接到一个条件中。例如,如果它是一个列表,或等于'apple'
,或等于range(10)
或n < 0
,则返回空列表。否则返回映射结果。isinstance
检查n
是否是list
的实例。一些测试用例:
获取
相关问题 更多 >
编程相关推荐