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