if(i-words < 0):
start_point = 0
else:
start_point = i - words
または、これは最小/最大を使用する最も簡単な方法ですか? これはリストのスプライシング用です。
start_point を常に 0 以上にしたい。
制限をより明確にする方が良い
start_point = max(i - words, 0)
このようにして、読んでいる人は誰でも、値を制限していることがわかります。
の任意の形式を使用するとif
、 2 回計算するという欠点があります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 がコメントで述べているように、最後の方法は読み取りと書き込みがより明確であるだけでなく、値を 1 回だけ評価します。これは、関数呼び出しの場合に重要になる可能性があります。