Ähnlich wie bei dieser Frage möchte ich (im Organisationsmodus) Python-Quellcodeblöcke auswerten, die "Eingabe" -Anweisungen enthalten, aber ich kann keine Möglichkeit finden, während der Auswertung eine interaktive Auswertung (mit Benutzereingaben) vorzunehmen oder ihr eine bekannte Eingabe zu geben im Voraus (zum Beispiel in einer Datei gespeichert).
Meine Einschränkung besteht darin, die input
Anweisung explizit zu verwenden , da all dies in einem Lehrbuch für Schüler enthalten sein sollte.
Beispiel für Code:
#+BEGIN_SRC python :results output
a= input("Value")
print(a)
#+END_SRC
Ist es möglich, eine solche interaktive Auswertung durchzuführen oder zu simulieren (indem dem Quellcode eine gefälschte Eingabe gegeben wird)?
export
, um Ihren Beispielcode für die Schüler in einem anderen Format zu generieren, z. B. HTML?noweb
Organisationsmodus, mit dem Sie Ihren Code mit Ergebnissen testen und exportieren können.Antworten:
Hier ist ein alternativer Ansatz, bei dem eine nicht exportierte, verwickelte Datei verwendet wird, um die Eingabefunktion zu ersetzen.
quelle
Bewerten Sie
python
Codeblöcke mithilfe der Lese- und Schreibprogrammierung im Organisationsmodus.Verwenden Sie den
:var
Header, um Variablen zuzuweisen und Ihren Code zu testen.Beispiel 1 - Drucken (a)
Zuweisen
hello world
zua
.Beispiel 2 -
print(a + b)
Zuweisen
1
zua
.Zuweisen
2
zub
.Beispiel 3 -
print(a,b,c)
Value of a
Eingabe aufgefordert werdenThanks
Value of b
Eingabe aufgefordert werden4
.Wenn Sie zur
Value of c
Eingabe aufgefordert werdenyour question
.Beispiel 1 -
print(a)
Zuweisen
hello world
zua
.Beispiel 2 -
print(a + b)
1
zua
.Zuweisen
2
zub
.Beispiel 3 -
print(a,b,c)
Value of a
Eingabe aufgefordert werdenThanks
Value of b
Eingabe aufgefordert werden4
.Wenn Sie zur
Value of c
Eingabe aufgefordert werdenyour question
.quelle
noweb
und Schreibprogramme im Org-Modus sind erstaunlich und unglaublich nützlich! Bitte lassen Sie mich wissen, wenn Sie zusätzliche Codebeispiele wünschen. Wenn Sie etwas benötigen, das nicht gut in das Q & A-Format passt, poste ich gerne in meinem GitHub-Repository.Ich denke nicht, dass es möglich ist, mit org-babel wirklich interaktive Python-Eingaben zu erhalten.
Sie können eine Präambel verwenden, um die Eingabefunktion neu zu definieren, sodass sie das zurückgibt, was Sie für die Verwendung der Eingabe simulieren möchten. Hier sieht es beispielsweise so aus, als hätte der Benutzer "3" eingegeben.
Abhängig davon, was die Schüler sehen, die exportiert werden, sehen sie möglicherweise nicht, dass Sie dies getan haben.
quelle
Als Ergänzung zu John Kitchins Lösung schlage ich vor, einen Generator zu verwenden, um die aufeinanderfolgenden Werte bereitzustellen, die die
input(...)
Funktionen "füttern" und einstr
Objekt systematisch zurückgeben.quelle