No interpretador interativo (REPL) de Python, qual a diferença entre escrever apenas x e escrever print(x)?
Questão
No interpretador interativo (REPL) de Python, qual a diferença entre escrever apenas x e escrever print(x)?
Alternativas
a. Apenas x funciona dentro de funções, print(x) não
b. Não há qualquer diferença; ambos fazem exactamente o mesmo em qualquer contexto
c. Apenas x mostra a representação de x no REPL, enquanto print(x) escreve x explicitamente na saída padrão
d. print(x) só funciona com números, enquanto x funciona com qualquer tipo
Explicação
No REPL do Python (modo interativo), quando você digita apenas uma expressão como x e pressiona Enter, o interpretador avalia essa expressão e, se ela não for None, o REPL exibe automaticamente o repr(x) (uma representação “oficial”, normalmente útil para depuração).
Já print(x) chama a função print, que converte o valor para texto (em geral usando str(x)) e escreve explicitamente na saída padrão (stdout), além de terminar com uma quebra de linha.
Consequências práticas:
- Para muitos tipos,
repr(x)estr(x)podem ser diferentes (ex.: strings: no REPL aparece com aspas; noprintaparece sem aspas). - Fora do REPL (por exemplo, em um script), escrever apenas
xnão imprime nada;print(x)imprime.
Portanto, no REPL: x exibe a representação do valor automaticamente; print(x) imprime o valor na saída padrão.