Аналогично этому вопросу я хотел бы оценить (в режиме org) блоки исходного кода Python, содержащие инструкции «input», но я не могу найти способ провести интерактивную оценку (с пользовательским вводом) во время оценки или дать ему какой-либо известный ввод заранее (хранится в файле, например).
Мое ограничение состоит в том, чтобы использовать input
инструкцию явно, поскольку все это должно быть включено в учебник для студентов.
Пример кода:
#+BEGIN_SRC python :results output
a= input("Value")
print(a)
#+END_SRC
Можно ли провести такую интерактивную оценку или смоделировать ее (предоставив исходному коду поддельный ввод)?
export
для генерации вашего примера кода для студентов в каком-либо другом формате, например, html?noweb
Е. Режима org, который позволит вам тестировать и экспортировать свой код с результатами.Ответы:
Вот альтернативный подход, который использует неэкспортированный, запутанный файл, чтобы заменить функцию ввода.
источник
Оцените
python
блоки кода, используя грамотное программирование в режиме org.Используйте
:var
заголовок, чтобы назначить переменные и проверить ваш код.Пример 1 - печать (а)
Назначают
hello world
вa
.Пример 2 -
print(a + b)
Назначают
1
вa
.Назначают
2
вb
.Пример 3 -
print(a,b,c)
Value of a
ввестиThanks
Value of b
ввести4
.Когда будет предложено
Value of c
ввестиyour question
.Пример 1 -
print(a)
Назначают
hello world
вa
.Пример 2 -
print(a + b)
1
вa
.Назначают
2
вb
.Пример 3 -
print(a,b,c)
Value of a
ввестиThanks
Value of b
ввести4
.Когда будет предложено
Value of c
ввестиyour question
.источник
noweb
в функциях орг-режима удивительно и невероятно полезно! Пожалуйста, дайте мне знать, если вам нужны дополнительные примеры кода. Если вам нужно что-то, что не вписывается в формат вопросов и ответов, я буду рад опубликовать в моем репозитории GitHub.Я не думаю, что возможно получить действительно интерактивный ввод Python с помощью org-babel.
Вы можете использовать преамбулу, чтобы переопределить функцию ввода, чтобы она возвращала то, что вы хотите имитировать, используя ввод, например, здесь мы делаем так, чтобы пользователь выглядел как «3».
В зависимости от того, что учащиеся видят, что экспортируется, они могут не увидеть, что вы сделали это.
источник
В качестве дополнения к решению Джона Китчина я предлагаю использовать генератор для предоставления последовательных значений, которые будут «питать»
input(...)
функции иstr
систематически возвращать объект.источник