On 11/03/2021 11:01, Rob Cliffe via Python-list wrote: > This is a valid Python program: > > def f(): pass > print(f) > > But at the REPL: > > >>> def f(): pass > ... print(f) > File "<stdin>", line 2 > print(f) > ^ > SyntaxError: invalid syntax > > It doesn't seem to matter what the second line is. In the REPL you have > to leave a blank line after the "def" line. Why?
I guess just because that's how the interpreter is written. It looks for a blank line to terminate the function definition. It does the same with multi-line definitions too. I agree it would be possible in the case of single line definitions to forego the blank line but it doesn't. It does remind you that you need another line since it shows the secondary prompt ... instead of the primary >>> -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos -- https://mail.python.org/mailman/listinfo/python-list