мне было интересно, если есть способ уплотнения этого кода:Python один вкладыш для обеспечения 0 <= значение <= 1?
foo = calculate() # 'calculate' is some kind of function which
# could return float values less than 0.0 or more than 1.0
# It's here only as a (hopefully) clarification
bar = foo * 5
if bar < 0:
bar = 0
elif bar > 1:
bar = 1
else:
pass # 'bar' has a good value within the "range"
Я знаю, что я мог сделать bar = max(foo * 5, 0)
или bar = min(foo * 5, 1)
, но ... Есть ли способ сделать это только в одной строке? Что-то вроде bar = ensure_between(0, foo * 5, 1)
или что-то в этом роде?
Это неважно, мне просто интересно.
Спасибо заранее :-)
http://stackoverflow.com/questions/4092528/how-to- clamp-an-integer-to-some-range-in-python – zch
Вы имели в виду 'elif foo * 5> 1: bar = 1'? –
@TigranSaluev Да, абсолютно! Хороший улов. Плохой перевод с фактического кода на foobars: D Извините (отредактировал вопрос, как и следовало сделать) – BorrajaX