[Tutor] Runs in IDLE with F5, but not in Windows Command Prompt
eryksun
eryksun at gmail.com
Thu Apr 25 22:12:56 CEST 2013
On Thu, Apr 25, 2013 at 9:45 AM, Marc Tompkins <marc.tompkins at gmail.com> wrote:
>
> If you put quotes around your input, Python recognizes it as a string
> literal. Python "executes" string literals by simply printing them to
> standard output - try it at a Python prompt sometime - which is probably not
> the behavior you were expecting, but doesn't throw an error either.
It's only printed in Python's interactive REPL (read-eval-print loop).
http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop
String literals, like all literals, are handled by the compiler. The
instantiated string gets stored somewhere such as a __doc__ attribute,
a code object's constants, a function's defaults, etc.
In 2.x, built-in input() compiles and evaluates a temporary code
object (in CPython it uses PyRun_StringFlags) in the current globals
and locals. If the source string is just the literal, the compiled
bytecode is a LOAD followed by a RETURN:
>>> code = compile('"boB"', '', 'eval')
>>> dis.dis(code)
1 0 LOAD_CONST 0 ('boB')
3 RETURN_VALUE
More information about the Tutor
mailing list