I think I found a bug in the new print syntax suggestion introduced by https://bugs.python.org/issue30597.
When the following code is executed by Python 3.6.3 inside of a .py file:
def f():
print '%d' % 2
, then Python gives the following error message:
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(int '%d' % 2)?
The "int" next to the left brace of the suggested print function is obviously wrong.
The expected message would be:
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('%d' % 2)?
Using other values or "%s" in the formatted string in a print statement produces the same wrong message.
This bug only seems to happen when the print statement is inside of a function AND when it is is run inside of a .py file. At least I could not reproduce it in the python3 REPL or outside of a function.
I am attaching the minimal example file in this bug report. Running it with "$ python3 print.py" should show the mentioned bug. |