2011-09-30 8 views

Odpowiedz

4

Można utworzyć nazwie makro z linii i wykonać je:

%macro foo 32-38 
foo 

Funkcja ta jest przydatna, jeśli chcesz wykonać ten sam zestaw linii więcej niż jeden raz. Również linie nie muszą być sekwencyjna lub zamówienie:

%macro bar 38 37 32-36 42 
+4

W nowych wersjach IPythona można również wykonać polecenie '% rerun 32-38', aby uruchomić je bezpośrednio, lub'% przypomnij 32-38', jeśli chcesz je poprawić przed uruchomieniem. –

+0

Jeśli utworzysz makro, czy będzie ono występować w sesjach ipython? –

11

używam notacji listy:

exec In[34:36] 

również w przypadku korzystania z funkcji edycji na edycję klocek, lista OUT mieć swój kod w nim tak:

exec Out[35] 

i mój faworyt:

edit In[34:38] 

, ponieważ jestem grubasowym slobem, który rzadko może zrobić to dobrze za pierwszym razem.

+2

Wypróbowałem Twoją sugestię, aby "edytować" kod z historii. Dla mnie (ipython 0.12) Twoja składnia działa tylko dla ** pojedynczej ** linii wejściowej: 'edit In [13]'. Zawsze kończyło się niepowodzeniem na wielu liniach wejściowych: 'edit In [34:38]'. Zamiast tego zadziałało "edytuj 34-38". –

+0

Huh! Nie próbowałem tego przez jakiś czas, (oczywiście) mając ten sam problem z iPythonem 0.13 ... dzięki za heads-up! – dreynold

+0

Ktoś podaje aktualizację? Żadna z porad na tej stronie nie działała dla mnie. Jestem na iPythonie 3.0.0 z Pythonem 2.7. – kakyo

2

można edytować linie przed wykonaniem je tak:

edit 1-5 

Widocznie składnia zmienił w pewnym momencie z listy-notacji stosowanej w odpowiedzi dreynold użytkownika.

8

Możesz wykonać kod z poprzednich sesji z %recall. Zobacz %recall dokumentację here.

#Execute all code from previous session. 
%recall ~1/ 

#Execute all code from two sessions previous the current session. 
%recall ~2/ 

#Execute lines 1 to 5 from previous session. 
%recall ~1/1-5 
+0

Ta składnia nie działa dla mnie. Ipython == 5.1.0 –

Powiązane problemy