Token error: EOF in multi-line statement Token error: EOF in multi-line statement python python

Token error: EOF in multi-line statement


Your first line in choices variable doesn't have an apostrophe (') at the end.


Not a direct answer to the original question, but since online searching brought me here... I got this error for another reason: a stray parenthesis! But it came from flake8. Here's a snippet of code to reproduce it:

import socketdef all_good(name):    name_line = f"Name: {name}")    print(name_line)

I saved this into a file called error.py. Now if I run flake8 on it:

$ flake8 error.py error.py:1:1: E902 TokenError: EOF in multi-line statement

Which is rather puzzling as there is no multi-line statement anywhere! Eventually I found the bug, but the moral of the story is that I'd have found it much quicker if I had run it through the python interpreter:

$ python3 error.py   File "error.py", line 5    name_line = f"Name: {name}")                               ^SyntaxError: unmatched ')'

Fix it:

import socketdef all_good(name):    name_line = f"Name: {name}"    print(name_line)

And now flake8 will actually do it's job:

$ flake8 error.py error.py:1:1: F401 'socket' imported but unused

It's obvious, but remember: check the code with python3 first, then run it through linters or other checkers.


You're missing the closing quote on the Fortune-Telling line.

That is easy to find because that is where the syntax highlighting becomes different.