1

我需要找到两个变量之间的范围,

def find_range(a,b):
    #some process
    for i in range(a,b):
        #some process

但问题是数字可能是a=4,b=2,在这种情况下,我需要 2 到 4 之间的范围。
我知道我可以通过使用if语句来解决这个问题并找到最小数字,但我不想使用if语句,因为已经有很多的if陈述。
这可能吗?

4

4 回答 4

5

您可以使用sorted和元组解包:

def find_range(a,b):
    print range(*sorted((a,b)))

演示:

>>> find_range(4, 2)
[2, 3]
>>> find_range(2, 4)
[2, 3]
于 2013-11-06T06:19:28.093 回答
1

关于什么:

for i in range(min([a,b]), max([a,b]))
于 2013-11-06T06:19:49.087 回答
1

尝试这个:

def find_range(a,b):
   _min = min(a,b)
   _max = max(a,b)

   for i in range(_min, _max):
       print i
于 2013-11-06T06:23:14.283 回答
0

尝试这个:

def find_range(a,b):
    #some process
    for i in range(*(a,b) if a < b else (b,a)):
        #some process
于 2013-11-06T06:19:08.507 回答