【发布时间】:2018-03-08 18:44:14
【问题描述】:
我被要求编写没有循环的代码并检查第一个数字是否接近第二个数字(接近意味着更大或更小一个)。我尝试使用巨大的条件,但我想也许有更简单的方法然后做这样的事情:
如果 num1 == num2 或 num1 == num2 - 1 或 num1 == num2 + 1
【问题讨论】:
-
abs(num1 - num2) <= 1 -
如果您要多次执行此操作,请编写一个函数
is_adjacent(num1, num2),然后调用该函数。然后,如果您使用一开始的冗长代码,它只会在一个地方冗长;如果您不确定自己是否理解 Johnny Mopp 编写的更智能的代码,它会被隔离到一个您可以单独测试的地方;如果你以后想改变它,只有一个地方可以改变它;等 -
无循环限制似乎很奇怪。使用循环并不是一件小事。
-
@DeepSpace:有循环很简单,没有循环就更简单了。新手永远不会写
any(num1==x for x in range(num2-1, num2+1)),但他们可能会想出它的扩展版本。 (也许没有循环的东西不应该是禁止那个答案的限制,而是一个让他们不要走那种想法的暗示?)
标签: python