Rob Cliffe via Python-list schreef op 27/06/2022 om 0:14:
This 2-line program

def f(): pass
def g(): pass

runs silently (no Exception).  But:

23:07:02 c:\>python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32
bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
  >>> def f(): pass
... def g(): pass
    File "<stdin>", line 2
      def g(): pass
      ^
SyntaxError: invalid syntax
  >>>

Is there a good reason for this?
The REPL requires an extra empty line to indicate the end of multi-line constructs. You can see it by the prompt: as long as the REPL prints '... '  as prompt, that means it puts everything you type in the same multi-line construct. To enter a new multi-line construct (such as a function definition, a for-loop, an if-statement, ...), press enter directly at the prompt; the REPL should than use '>>> ' as the prompt again.

(Alternatives like IPython (https://ipython.readthedocs.io/en/stable/) are a bit more loose regarding how to enter multi-line constructs)

--
"Iceland is the place you go to remind yourself that planet Earth is a
machine... and that all organic life that has ever existed amounts to a greasy
film that has survived on the exterior of that machine thanks to furious
improvisation."
        -- Sam Hughes, Ra

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to