Per chiarezza: un sintax error viene segnalato alla posizione SUCCESSIVA del parser, rispetto a dove succede.
>>> foo bar baz
File "<stdin>", line 1
foo bar baz
^
SyntaxError: invalid syntax
>>>
Qui l'errore è segnato su "baz", ma ovviamente è già capitato sul token "foo".
>>> def foo():
... print(10
... print(12)
File "<stdin>", line 3
print(12)
^
SyntaxError: invalid syntax
Qui l'errore è segnalato al secondo "print", ma ovviamente succede nella riga precedente (manca la parentesi).
Una lettura accurata di un buon manuale è sempre un'opzione da non trascurare, se l'obbiettivo è quello di imparare Python.
Tra l'altro, anche il tutorial della documentazione ufficiale dice queste cose, se ben ricordo. Ne esiste anche una traduzione italiana aggiornata, qui
https://pytutorial-it.readthedocs.io