2016-04-22 28 views
26

Desidero che Jupyter stampi tutto l'output interattivo senza ricorrere alla stampa, non solo l'ultimo risultato. Come farlo?Come visualizzare l'output completo in Jupyter, non solo l'ultimo risultato?

Esempio:

a=3 
a 
a+1 

Vorrei visualizzare

+7

Non è usato molto spesso, ma in realtà non v'è un'opzione di configurazione che dovrebbe fare questo - impostare 'InteractiveShell. ast_node_interactivity' to''' nel [file di configurazione del kernel IPython] (http://ipython.readthedocs.org/en/stable/config/options/kernel.html). –

+0

Grazie Thomas, è quello che stavo cercando :) – mbh86

risposta

46

Grazie a Thomas, ecco la soluzione che cercavo:

from IPython.core.interactiveshell import InteractiveShell 
InteractiveShell.ast_node_interactivity = "all" 
+0

Questo è un ottimo consiglio. - Qual è il valore del flag per ripristinare solo l'ultima riga di output? –

+5

Il valore predefinito è: 'last_expr'. Puoi trovare molte altre opzioni qui: http://ipython.readthedocs.org/en/stable/config/options/terminal.html – mbh86

+3

Per riferimento, le opzioni sono "tutto", "nessuno", "ultimo" 'e' last_expr '. La differenza tra 'last' e 'last_expr': se la tua cella termina con, ad esempio, un ciclo contenente un'espressione, 'last' ti mostrerà i risultati di quell'espressione in ogni iterazione del ciclo. 'last_expr' (il valore predefinito) non lo mostrerà: visualizzerà solo il risultato di un'espressione nuda alla fine della cella. –

1

Devi o stamparlo o visualizzarlo da cellule diverse, o visualizzarlo dalla stessa linea - Jupyter visualizza l'ultimo risultato

a=3 
a 
out[1]: 3 
(other cell) 
a+1 
out[2]: 4 

o:

a=3 
print(a) 
print(a+1) 
out[3]: 3 
4 

o:

a=3 
a, a+1 
out[4]: (3, 4) 
+0

Grazie a Reblochon per le tue soluzioni, ma per favore dai un'occhiata alla risposta che Thomas ha avuto. – mbh86

+1

Meraviglioso, ho imparato qualcosa di utile, grazie per avermi avvisato della risposta migliore. :) –

4

https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

1) Inserire questo codice in una cella Jupyter:

from IPython.core.interactiveshell import InteractiveShell 

InteractiveShell.ast_node_interactivity = "all" 

2) In Windows, la procedura che segue rende il cambiamento permanente. Dovrebbe funzionare per altri sistemi operativi. Potrebbe essere necessario cambiare il percorso.

C:\Users\your_profile\\.ipython\profile_default 

Fai un file di ipython_config.py nelle profile_defaults con il seguente codice:

c = get_config() 

c.InteractiveShell.ast_node_interactivity = "all" 
Problemi correlati