Python trailing comma after print executes next instruction

python, text

Solution

In Python 2.x, a trailing `,` in a `print` statement prevents a new line to be emitted.

- In Python 3.x, use `print("Hi", end="")` to achieve the same effect.

The standard output is line-buffered. So the `"Hi"` won't be printed before a new line is emitted.

Problem

If a trailing comma is added to the end of a print statement, the next statement is executed first. Why is this? For example, this executes `10000 ** 10000` before it prints `"Hi "`: ``` print "Hi", print 10000 ** 10000 ``` And this takes a while before printing "Hi Hello": ``` def sayHello(): for i in [0] * 100000000: pass print "Hello" print "Hi", sayHello() ```

Original source

Related problems