如何放入变量的范围

时间:2016-10-05 20:53:42

标签: python-2.7

def getPoints(n):

    if n==1:
        return [1,11]
    elif n==(range(2,10)):
        return [n] 
    elif n==(range(10,13)):
        return [10]

例如,如果n==12我希望它返回[10],如果n==5我希望它返回[5]。我没有从Python shell返回。

1 个答案:

答案 0 :(得分:0)

让我们考虑你写的这个表达式:n==(range(2,10))

n大概是一个数字 - 它不可能等于一系列数字!

但是,您可以将测试编写为n in range(2,10)并且它可以执行您想要的操作 - 尽管效率有点低,因为每次执行测试时实际上都会创建一个数字列表,然后通过线性搜索名单。使用xrange代替range会更有效率,因为它实际上并不会创建列表。

进行相同测试的另一种方法是2 <= n < 10(这与(2 <= n) and (n < 10)基本相同)