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返回。
答案 0 :(得分:0)
让我们考虑你写的这个表达式:n==(range(2,10))
n
大概是一个数字 - 它不可能等于一系列数字!
但是,您可以将测试编写为n in range(2,10)
并且它可以执行您想要的操作 - 尽管效率有点低,因为每次执行测试时实际上都会创建一个数字列表,然后通过线性搜索名单。使用xrange
代替range
会更有效率,因为它实际上并不会创建列表。
进行相同测试的另一种方法是2 <= n < 10
(这与(2 <= n) and (n < 10)
基本相同)