Podobnie jak w przypadku tego pytania , chciałbym ocenić (w trybie org) bloki kodu źródłowego Pythona zawierające instrukcje „wejściowe”, ale nie mogę znaleźć sposobu na interaktywną ocenę (z wejściem użytkownika) podczas oceny lub dać jej znać z góry (na przykład przechowywane w pliku).
Moim ograniczeniem jest jawne stosowanie input
instrukcji, ponieważ wszystko to powinno być zawarte w podręczniku dla studentów.
Przykład kodu:
#+BEGIN_SRC python :results output
a= input("Value")
print(a)
#+END_SRC
Czy możliwe jest przeprowadzenie takiej interaktywnej oceny lub jej symulacja (poprzez podanie kodu źródłowego fałszywych danych wejściowych)?
export
do generowania przykładowego kodu dla uczniów w innym formacie, np. HTML?noweb
Trybu org, który pozwoli ci przetestować i wyeksportować kod z wynikami.Odpowiedzi:
Oto alternatywne podejście, w którym nieeksportowany plik splątany zastępuje funkcję wprowadzania.
źródło
Oceniaj
python
bloki kodu, używając umiejętności czytania i pisania w trybie org.Użyj
:var
nagłówka, aby przypisać zmienne i przetestować kod.Przykład 1 - wydrukuj (a)
Przypisz
hello world
doa
.Przykład 2 -
print(a + b)
Przypisz
1
doa
.Przypisz
2
dob
.Przykład 3 -
print(a,b,c)
Value of a
wprowadzenieThanks
Value of b
wprowadzenie4
.Po wyświetleniu monitu o
Value of c
wprowadzenieyour question
.Przykład 1 -
print(a)
Przypisz
hello world
doa
.Przykład 2 -
print(a + b)
1
doa
.Przypisz
2
dob
.Przykład 3 -
print(a,b,c)
Value of a
wprowadzenieThanks
Value of b
wprowadzenie4
.Po wyświetleniu monitu o
Value of c
wprowadzenieyour question
.źródło
noweb
w trybie org jest niesamowite i niezwykle przydatne! Daj mi znać, jeśli chcesz dodatkowe przykłady kodu. Jeśli potrzebujesz czegoś, co nie pasuje dobrze do formatu pytań i odpowiedzi, chętnie opublikuję w moim repozytorium GitHub.Nie sądzę, że można uzyskać prawdziwie interaktywne wejście w Pythonie za pomocą org-babel.
Możesz użyć preambuły, aby ponownie zdefiniować funkcję wprowadzania, aby zwracała to, co chcesz symulować użycie danych wejściowych, np. Tutaj wyglądamy, jakby użytkownik wpisał „3”.
W zależności od tego, co uczniowie widzą, że jest eksportowane, mogą nie zobaczyć, że to zrobiłeś.
źródło
Jako uzupełnienie rozwiązania Johna Kitchina proponuję użyć generatora, aby zapewnić kolejne wartości, które „zasilą”
input(...)
funkcje i będąstr
systematycznie zwracać obiekt.źródło