Python эквивалент выражения Ruby: "ставит x += значение"


Ради любопытства...

В Ruby:

=>$ irb
1.8.7 :001 > puts x = 2
2
 => nil 
1.8.7 :002 > puts x += 2 while x < 40
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40

Это очень удобно.

Можно ли сделать это в Python в одной строке и если да, то как?

1 4

1 ответ:

Причина, по которой вы не можете сделать точно или очень похоже то же самое в Python, потому что в Ruby все является выражением.

Python различает операторы и выражения, и только выражения могут быть вычислены (поэтому печатается, я имею в виду передается оператору/функции печати).

Таким образом, такой код не может быть выполнен на Python в том виде, который Вы нам показали. Все, что вы можете сделать, это найти какой-то "похожий" способ записать оператор выше как Python но это точно будет не тот"Рубин".

ИМХО, в Python, невозможность такого поведения (как описано в этом случае использования), красиво следует "явное лучше, чем неявное" Дзен правила Python.