<div class="gmail_quote">2012/1/22 Zoltán Vörös <span dir="ltr">&lt;<a href="mailto:zvoros@gmail.com">zvoros@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div id=":180">By the way, this would also happen in<br>
the console, if I did this<br>
range(4); range(5)<br>
<br>
I know, I know, we are strongly discouraged from doing this. I only<br>
wanted to demonstrate the issue;)<br></div></blockquote><div><br>The code that decides what to display uses the Abstract Syntax Tree, so it doesn&#39;t differentiate this from separate lines: in both cases, you have two statements.<br>

 </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div id=":180">

Now, my question is whether this has been considered, or there is a very<br>
fundamental reason for not changing this, even in the multiline<br>
qtconsole or the notebook. I can very well imagine that it might not be<br>
trivial to sort out the outputs of all statements, and then one just<br>
waits for the last one...</div></blockquote></div><br>It&#39;s easy enough to display them all if we decide we want to, but I don&#39;t think it&#39;s necessarily what we want. Lots of functions you invoke for their side effects may return a value that you&#39;re not interested in seeing (for instance, in Python 3, writing to a file returns the number of bytes written). I think having one input cell to one item of output keeps it clear what&#39;s going on. You can of course use print to produce extra output.<br>

<br>If you&#39;re interested, the code that decides what will get displayed is in run_ast_nodes, here: <a href="https://github.com/ipython/ipython/blob/master/IPython/core/interactiveshell.py#L2447">https://github.com/ipython/ipython/blob/master/IPython/core/interactiveshell.py#L2447</a>   (code compiled in &#39;single&#39; mode triggers the displayhook)<br>

<br>Thomas<br>