SyntaxError EOL While Scanning String Literal?
erros de sintaxe são detectados antes dos programas serem executados. Normalmente, é apenas um erro de digitação ou um erro sintático. Tal erro em Python é o EOL Sintaxerror enquanto digitaliza o texto literal.
this SyntaxError occurs while the interpreter scans the string literals and hits the EOL (‘End of Line’). Mas se ele não encontrar um caráter específico antes do EOL, o erro é levantado.
deixe-nos entendê-lo mais com a ajuda de um exemplo.
What is “SyntaxError EOL while scanning string literal”?
um erro de Sintaxerror EOL (fim da linha) ocorre quando o interpretador de Python não encontra um caractere particular ou um conjunto de caracteres antes que a linha de código termine. Quando o erro é levantado, a execução do código é interrompida.
- cotações em falta para fechar o texto
- cadeia estende-se para além de uma linha
cotações em falta para fechar o texto:
ao fechar uma string, há muitas vezes em que nos esquecemos de adicionar uma vírgula invertida (única ou dupla). Quando isso acontece, o interpretador Python não é capaz de encontrar o fim da linha durante a digitalização da string. Assim o erro de Sintaxerror EOL ocorre.
Exemplo 1:
MyList = if not MyList: print("MyList is emptyelse: print("MyList is not empty")
Saída:
File "main.py", line 3 print("MyList is empty ^SyntaxError: EOL while scanning string literal
Explicação
No código acima, temos inicializado uma lista vazia MyList e usou um if-else bloco para impressão de se ‘MyList’ está vazia ou não. Dentro do bloco if a declaração de impressão é usada para imprimir uma string. Mas faltam duas vírgulas invertidas no fim. E por causa das vírgulas em falta, o interpretador Python é incapaz de encontrar o fim do texto.
Thus the SyntaxError error is encountered.
Solution
certifique-se que a string deve ser sempre fechada dentro de aspas simples ou duplas.
código correcto
llist = if not llist: print("List is empty")else: print("List is not empty")
saída
MyList is empty
String estende-se para além de uma linha
em Python, não podemos estender a nossa string que é fechada dentro de uma única ou dupla vírgula invertida através de uma única linha. Se tentarmos fazer isso, o erro “SyntaxError EOL enquanto digitaliza o texto literal ocorre” aparecerá. Se queremos que a nossa string se estenda em várias linhas, então elas devem ser fechadas dentro de vírgulas triplas invertidas (simples ou duplas).Exemplo 2:
ttuple = ()if not ttuple: print("Tuple isempty")else: print("Tuple is not empty")
Resultado :
file "main.py", line 3 print("MyTuple is ^SyntaxError: EOL while scanning string literal
Explicação
No código acima, temos inicializado uma tupla vazia ‘MyTuple’ e utilizado if-else bloco para impressão de se ‘MyTuple’ está vazia ou não. Dentro do bloco if a declaração de impressão é usada para imprimir uma string. Mas a corda é expandida em várias linhas. E não é interpretado pelo interpretador python. Assim, o erro foi levantado.
solução
tente manter toda a cadeia dentro de uma única linha.
código correcto:
MyTuple = ()if not MyTuple: print("MyTuple is empty")else: print("MyTuple is not empty")
resultado:
MyTuple is empty
Nota: Se quiser que o texto seja inicializado em várias linhas. Em seguida, use vírgulas triplas invertidas ou simples(“‘ aspas simples “‘) ou duplas (“”aspas duplas”””) para incluir a sua string.Exemplo:
MyTuple = ()if not MyTuple: print("""MyTuple is empty""")else: print("MyTuple is not empty")
resultado:
MyTuple isempty
conclusão
esperamos que todos os cenários acima explicados o ajudem a prevenir o erro Sintaxerror EOL enquanto digitaliza o erro literal da cadeia. Outro erro que você deve evitar é usar citações incompatíveis. Ao fechar strings, certifique-se de que se ele começa com aspas simples, ele deve terminar com aspas duplas.