Как использовать условные операции в python?

#python

Вопрос:

 x =5 if x 5lt;10 else 0  

В приведенном выше примере я должен добавить 5 к x, если x 5 меньше 10.

но, как вы можете видеть, я вычисляю x 5 два раза, как я могу обойтись без повторения этого.

Нравится "add x to 5 if it doesnt become greater than 10 after adding"

возможно ли это на python? если да, то как вы это делаете?

Комментарии:

1. «но, как вы можете видеть, я вычисляю x 5 два раза, как я могу обойтись без повторения этого». Почему повторение вычисления является проблемой ? Вам просто нужен какой-то «более элегантный» способ получить правильное новое значение для x ? Обязательно ли использовать условное выражение? В чем, собственно, здесь вопрос ?

Ответ №1:

Ну, вы могли бы преобразовать это выражение:

 x   5 lt; 10  

в это:

 x lt; 5  

Затем перефразируйте свой если еще один лайнер следующим образом:

 x  = 5 if x lt; 5 else 0  

Ответ №2:

В Python 3.8 появился новый оператор «морж». := , что позволяет присваивать значения в виде выражений, точно так же, как = оператор ведет себя в языках, подобных C.

Вы можете переписать свое выражение следующим образом:

 x = y if (y:= x   5) lt; 10 else x