Python equivalent of Rubys expression: puts x += value
Python equivalent of Rubys expression: puts x += value
The reason why you can not do exactly or very similarly the same in Python is because in Ruby, everything is expression.
Python distincts between statements and expressions and only expressions can be evaluated (therefore printed, I mean passed to print operator/function).
So such code cannot be done in Python in that form you showed us. Everything you can do is to find some similar way to write down statement above as a Python expression but it will definitely not be that Rubyous.
IMHO, in Python, impossibility of such behaviour (as described in this use case), nicely follows explicit is better than implicit Zen of Python rule.
a one-liner to produce the same result:
for x in xrange(4,42,2): print x
gives:
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
xrange is a built in function that returns an “xrange object”, which yields the next item without storing them all (like range
does), this is very similar to OPs while
loop.
Python equivalent of Rubys expression: puts x += value
This is not possible in python; you cant use a statement (x += 2
) as an expression to be printed.