New submission from Nick Coghlan:

Back when we added the custom error message for missing parentheses in print 
calls, I also pre-seeded an explanation of the error on Stack Overflow: 
https://stackoverflow.com/questions/25445439/what-does-syntaxerror-missing-parentheses-in-call-to-print-mean-in-python/

While that does seem to be having the desired effect of explaining an otherwise 
cryptic message to people, William Brown pointed out that it could potentially 
be improved by taking advantage of the fact we have access to the rest of the 
line when working out the exact error text:

```
>>> print "Hello world!"
  File "<stdin>", line 1
    print "Hello world!"
                       ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean 'print("Hello 
world!")'?
```

The rationale for such a change is similar to the rationale for adding the 
custom error message in the first place: the folks most likely to hit this are 
either attempting to run a Python 2 script on Py3, or else attempting to follow 
a Py2 tutorial on Py3, and *telling* them what's wrong isn't as clear as 
*showing* them (by reprinting the line with the parentheses added)

----------
messages: 295397
nosy: ncoghlan
priority: normal
severity: normal
stage: needs patch
status: open
title: Show expected input in custom "print" error message
type: enhancement
versions: Python 3.6, Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue30597>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to