if(i-words < 0):
start_point = 0
else:
start_point = i - words
或者这是使用最小/最大值的最简单方法?这是列表拼接。有没有一种简单的方法在Python中编写它?
我希望start_point始终为0或以上。
if(i-words < 0):
start_point = 0
else:
start_point = i - words
或者这是使用最小/最大值的最简单方法?这是列表拼接。有没有一种简单的方法在Python中编写它?
我希望start_point始终为0或以上。
更好的是使限制更加明显
start_point = max(i - words, 0)
这样一来,任何阅读可以看到你限制值。
使用任何形式的if
的缺点是您计算两次i - words
。为此使用临时会导致更多的代码膨胀。
因此,在这些情况下使用max
和min
。
如何
start_point = 0 if i - words < 0 else i - words
或
start_point = i - words if i - words < 0 else 0
甚至更好,最清晰的方式:
start_point = max(i - words, 0)
由于米哈伊说,在他的评论,最后的办法是,不仅更清晰读取和写入,但只评估一次该值,如果它是函数调用可能很重要。
它计算两倍相同的数量。当然,这里有一个简单的减法,但也可以使用这个例子,而不是'我'他会有'a_very_complex_function_taking_too_long_to_give_an_answer' –
谢谢。我会将这个事实添加到帖子中。 –
'max'是正确的。观察:'max(-3,0)'返回'0','max(3,0)'返回'3',这是预期的行为。还要注意:'min(-3,0)'返回'-3','min(3,0)'返回'0',这是错误的结果。 –
您需要_min_不_max_,伙计们。 – smci
错误,上面的'min'限制,以下的'最大'限制 –
Doh。你是对的。证据是时候了。 – smci