Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have never understood why the "In[5]" and "Out[5]" in jupyter have to be so prominent, even in a output like this.


_5 is a magic variable with the value of the output from cell 5. _ refers to the last output. Super handy when working interactively.


Oh my god. I have used Jupyter notebooks for 7 years and never knew this. I just had to fire one up to verify -- and yep; exactly as described. How amazing! Thank you!


I believe the _5 syntax is specific to Jupyter, but in Python, the output of the last statement you execute is bound to _

For example, if you simply enter 4 into a Python REPL, printing _ will also print 4

It's really handy if you call a long statement in the REPL and forget to save the output to a variable

I wrote about it once if you'd like to see some better examples: https://utf9k.net/blog/lost-python-results/


I knew this, which may be handy when developing (assigning variables is superior IMO though)

But in final output like this? I don't like it.


No, you should not use output-references in code you share with people, but in my opinion it is one of the main reasons why jupyter notebooks in general put a large emphasis on displaying cell numbers


You just blew my mind.


The numbers track the order that the cells were executed in. So, strictly speaking, you need the numbers to be able to reproduce the output of the notebook's author. However, I think it's bad practice and pretty uncommon to publish a notebook where you need to execute the cells out of order. So most of the time the numbers aren't useful.


Indeed, and the line numbers are a warning that you might have an order-of-execution bug lurking somewhere.


It seems useful to denote REPL input vs output, and to be able to identify output relating to input.


Sure, but the [5] feels unnecessary in a finished document like this. I mean, the output should be right after the input anyway, right?


It's so it's easy to refer to things, like equation numbers in a maths book, or line numbers in code. E.g. people talking about someone's notebook here on HN can be specific and clear.


Agreed. They should be (5) Input: / Output:. Where input and output are on the same level of indentation under (5).


People working with notebooks find it useful. You can remove it with one line of javascript though.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: