Similarmente a esta pergunta, eu gostaria de avaliar (no modo organizacional) blocos de código-fonte Python contendo instruções "input", mas não consigo encontrar uma maneira de fazer uma avaliação interativa (com entrada do usuário) durante a avaliação ou fornecer alguma entrada conhecida antecipadamente (armazenado em um arquivo, por exemplo).
Minha restrição é usar explicitamente as input
instruções, pois tudo isso deve ser incluído em um livro didático para os alunos.
Exemplo de código:
#+BEGIN_SRC python :results output
a= input("Value")
print(a)
#+END_SRC
É possível ter uma avaliação interativa ou simulá-la (fornecendo ao código fonte uma entrada falsa)?
export
para gerar seu código de exemplo para os alunos em algum outro formato, por exemplo, html?noweb
, do modo organizacional que permitirá testar e exportar seu código com resultados.Respostas:
Aqui está uma abordagem alternativa que usa um arquivo emaranhado não exportado para substituir a função de entrada.
fonte
Avalie
python
blocos de código usando programação alfabética no modo organizacional.Use o
:var
cabeçalho para atribuir variáveis e teste seu código.Exemplo 1 - impressão (a)
Atribuir
hello world
aa
.Exemplo 2 -
print(a + b)
Atribuir
1
aa
.Atribuir
2
ab
.Exemplo 3 -
print(a,b,c)
Value of a
digiteThanks
Value of b
digite4
.Quando solicitado,
Value of c
digiteyour question
.Exemplo 1 -
print(a)
Atribuir
hello world
aa
.Exemplo 2 -
print(a + b)
1
aa
.Atribuir
2
ab
.Exemplo 3 -
print(a,b,c)
Value of a
digiteThanks
Value of b
digite4
.Quando solicitado,
Value of c
digiteyour question
.fonte
noweb
,, nos recursos do modo organizacional, é incrível e incrivelmente útil! Entre em contato se você quiser exemplos de código adicionais. Se você precisar de algo que não se encaixa bem no formato de perguntas e respostas, fico feliz em publicar no meu repositório GitHub.Eu não acho que é possível obter uma entrada Python verdadeiramente interativa com org-babel.
Você pode usar um preâmbulo para redefinir a função de entrada, para que ela retorne o que você deseja simular o uso da entrada, por exemplo, aqui fazemos parecer que o usuário digitou "3".
Dependendo do que os alunos veem que é exportado, eles podem não perceber que você fez isso.
fonte
Como complemento da solução de John Kitchin, proponho usar um gerador para fornecer os valores sucessivos que "alimentarão" as
input(...)
funções e retornarão umstr
objeto sistematicamente.fonte