Python 检查2个给定的数字是否彼此接近

Python 检查2个给定的数字是否彼此接近,python,Python,我被要求编写没有循环的代码,并检查第一个数字是否接近第二个数字(close表示大于或小于1)。我尝试使用大量条件,但我发现可能有一种更简单的方法,然后执行以下操作: lst = [2.4, 3.2, 6.9, 7.2, 9.8] K = 5.1 print(closest(lst, K)) 如果num1==num2或num1==num2-1或num1==num2+1 计算两个数字之间的差值,取其绝对值(如果num2大于num1),并将结果与1进行比较: abs(num1 - num2) <

我被要求编写没有循环的代码,并检查第一个数字是否接近第二个数字(close表示大于或小于1)。我尝试使用大量条件,但我发现可能有一种更简单的方法,然后执行以下操作:

lst = [2.4, 3.2, 6.9, 7.2, 9.8]
K = 5.1
print(closest(lst, K))
如果num1==num2或num1==num2-1或num1==num2+1


计算两个数字之间的差值,取其绝对值(如果
num2
大于
num1
),并将结果与1进行比较:

abs(num1 - num2) <= 1

abs(num1-num2)我想介绍3个函数,它们做类似的近似,但使用列表:

def closest(lst, K):
    return lst[min(range(len(lst)), key=lambda i: abs(lst[i]-K))]
为了理解上一个函数,下一个函数类似:

def closest(lst, K):
    minim = None
    for i in lst:
        aux = abs(i - K)
        if minim is None:
            minim = aux
            result = i
        if aux < minim:
            minim = aux
            result = i
    return result
您可以使用如下示例调用上面的函数:

lst = [2.4, 3.2, 6.9, 7.2, 9.8]
K = 5.1
print(closest(lst, K))

<强>注:< /强>如果数字正好在中间,则函数得到最小值。

<代码> ABS(NUM1-NUM2)。如果您多次这样做,请写一个函数<代码> iSuthOffice(NUM1,NUM2)< /代码>,然后调用该函数。然后,如果您使用开始时使用的详细代码,那么它只在一个地方是详细的;如果您不确定自己是否理解Johnny Mopp的smarter代码,那么它被隔离到一个单独的地方,您可以单独测试;如果你以后想改变它,只有一个地方可以改变它;等等。无循环限制似乎很奇怪。使用循环并不是一件小事。@DeepSpace:使用循环很简单,没有循环更简单。新手永远不会编写
任何代码(num1==x表示范围内的x(num2-1,num2+1))
,但他们可能会提出扩展版本。(也许“无循环”这件事不应该是禁止回答的限制,而是让他们不要走上那种思维方式的暗示?)