首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python平方函数

Python平方函数
EN

Stack Overflow用户
提问于 2013-07-06 11:04:21
回答 2查看 32K关注 0票数 5

我正在编写一个函数,它将返回一个平方数列表,但如果该函数接受参数('apple')或(range(10))或一个列表,则将返回一个空列表。我已经完成了第一部分,但不知道如何返回空集,如果参数n不是整数-我一直得到一个错误: unorderable type: str() > int()我知道字符串不能与整数进行比较,但我需要它来返回空列表。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-06 11:13:48

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

代码语言:javascript
复制
def Squares(n):
    squareList = []

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

    return squareList
票数 5
EN

Stack Overflow用户

发布于 2013-07-06 11:09:13

你可以使用or将所有导致返回空列表的条件链接到一个条件中。也就是说,如果它是一个列表,或者等于'apple',或者等于range(10)n < 0,那么返回一个空列表。否则,返回mapResult。

代码语言:javascript
复制
def square(n):
    return n**2

def squares(n):
   if isinstance(n,list) or n == 'apple' or n == range(10) or n < 0:
      return []
   else:
      return list(map(square,range(1,n+1)))

isinstance检查n是否是list的实例。

一些测试用例:

代码语言:javascript
复制
print squares([1,2])
print squares('apple')
print squares(range(10))
print squares(0)
print squares(5)

获取

代码语言:javascript
复制
[]
[]
[]
[]
[1, 4, 9, 16, 25]
>>> 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17499268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档