if(i-words < 0):
start_point = 0
else:
start_point = i - words
或者这是使用最小值/最大值的最简单方法?这是用于列表拼接。
我希望 start_point 始终为 0 或更高。
更好的是使限制更明显
start_point = max(i - words, 0)
这样,任何阅读的人都可以看到您正在限制一个值。
使用任何形式if
的缺点是计算两次i - words
。为此使用临时代码会使代码膨胀。
因此,在这些情况下使用max
and 。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)
正如 Mihai 在他的评论中所说,最后一种方法不仅读写更清晰,而且只计算一次值,如果它是函数调用,这可能很重要。