logo

EOL em Python

Como sabemos, uma linguagem de programação como Python é uma linguagem interpretada, o que implica essencialmente que cada bloco ou linha de código seja processado um após um, em vez de alterar todo o programa para um código de baixo nível.

Sempre que o intérprete de Python verifica uma linha de código e percebe algo comum, ele gera um erro conhecido como Erro de Sintaxe. Geralmente, um colchete ausente, uma aspa final ausente e outras anomalias fundamentais na sintaxe são os motivos pelos quais os erros foram gerados.

No tutorial a seguir, descobriremos um dos erros de sintaxe em Python conhecido como EOL, que geralmente surge quando tentamos digitalizar uma string literal.

Compreendendo o significado de EOL

Devemos compreender o significado de EOL de forma eficaz antes de resolver um problema. EOL é a abreviação de 'Fim de Linha'. O erro EOL significa que o intérprete do Python atingiu o final da linha durante a varredura da string literal.

Os literais de string, também conhecidos como constantes, devem ser colocados entre aspas simples ou duplas. Atingir o 'fim da linha' quando tentamos fazer a varredura significa que alcançamos o último caractere da string e não encontramos as aspas finais.

Vamos considerar um exemplo básico que demonstra como o erro EOL é gerado.

Exemplo:

 # defining a string value my_string = 'This is my string literal, and it is broken... # printing the string value print('String:', my_string) 

Saída:

 File 'D:Python	ernarypy.py', line 2 my_string = 'This is my string literal, and it is broken... ^ SyntaxError: EOL while scanning string literal 

Explicação:

No trecho de código acima, definimos uma string literal; no entanto, perdemos as aspas no final da string, o que aumentou o erro de sintaxe chamado EOL ao imprimir essa string para os usuários.

Na seção de saída podemos observar uma pequena seta apontando para o último caractere da string, demonstrando que o erro ocorreu quando o programa tentou analisar aquele segmento da instrução.

Agora que entendemos o problema, vamos entender alguns casos em que esse erro pode aparecer durante a execução de um código python.

Corrigindo o 'Erro de sintaxe: EOL ao verificar literal de string.'

Podemos encontrar esse erro em quatro situações principais ao trabalhar em um programa Python. Essas quatro situações principais são mostradas abaixo:

  1. Faltando as aspas finais
  2. Usando as aspas finais incorretas
  3. Alongamento constante de string para múltiplas linhas
  4. Usando barra invertida antes das aspas finais

Vamos começar a entender cada uma dessas situações e tentar contorná-las.

Faltando as aspas finais

Conforme discutido no trecho de código anterior, o interpretador Python gera um erro de sintaxe sempre que atinge o final da string literal e descobre que as aspas estão faltando.

Exemplo:

 # defining a string value my_string = 'This is my string literal, and it is broken... # printing the string value print('String:', my_string) 

Explicação:

Podemos observar que falta as aspas no final da string literal, o que também justifica o erro de sintaxe. Toda linguagem possui poucas regras fundamentais em relação à sintaxe, que, quando violadas, resultam em erros.

Vamos agora considerar a seguinte sintaxe como a solução para o problema acima.

Solução:

 # defining a string value my_string = 'This is my string literal, and it is broken...' # printing the string value print('String:', my_string) 

Saída:

 String: This is my string literal, and it is broken... 

Explicação:

No trecho de código acima, podemos observar que incluímos as aspas no final da string literal. Como resultado, a string é impressa para os usuários com êxito, sem gerar nenhum erro de sintaxe.

Usando as aspas finais incorretas

Podemos fazer uso ' ' assim como ' ' para incluir uma determinada constante de string em Python. No entanto, um programador geralmente usa aspas incorretas no final do valor da string. Tal situação faz com que o programa gere um erro de sintaxe em termos de EOL.

Consideremos tal situação no exemplo a seguir:

Exemplo:

 # defining a string value my_string = 'This is my string literal with wrong quotation mark at the end.' # printing the string value print('String:', my_string) 

Saída:

 File 'D:Python	ernarypy.py', line 2 my_string = 'This is my string literal with wrong quotation mark at the end.' ^ SyntaxError: EOL while scanning string literal 

Explicação:

No trecho de código acima, usamos aspas incorretas no final do valor da string que resulta no erro de sintaxe.

Podemos evitar esse problema usando aspas correspondentes no final da string, conforme mostrado no trecho de código a seguir.

Solução:

 # defining a string value my_string = 'This is my string literal with wrong quotation mark at the end.' # printing the string value print('String:', my_string) 

Saída:

 String: This is my string literal with wrong quotation mark at the end. 

Explicação:

No trecho de código acima, como podemos observar, usamos as aspas correspondentes no final da string que nos ajuda a evitar qualquer erro de EOL.

Alongamento constante de string para múltiplas linhas

Existem vários programadores iniciantes em Python que cometem o erro de esticar as instruções para mais de uma linha. Python leva em consideração uma nova linha como final da instrução, ao contrário de outras linguagens como C++ e Java que consideram ';' como o final das declarações.

Consideremos um exemplo que demonstra o mesmo problema.

Exemplo de problema:

 # defining a string value my_string = 'This is my string literal... this is my new line' # printing the string value print('String:', my_string) 

Saída:

 File 'D:Python	ernarypy.py', line 2 my_string = 'This is my string literal... ^ SyntaxError: EOL while scanning string literal 

Explicação:

Oracle SQL não é igual

No trecho de código acima, podemos observar que o código pode parecer comum; entretanto, assim que a próxima linha é iniciada, o interpretador Python põe fim a essa instrução, gerando um erro de sintaxe por não incluir a constante da string.

No entanto, podemos resolver este problema usando vários métodos, conforme mostrado abaixo:

Solução 1: usando ' ' para fornecer o efeito de uma nova linha para a constante de string

 # defining a string value my_string = 'This is my string literal...
 this is my new line' # printing the string value print('String:', my_string) 

Saída:

 String: This is my string literal... this is my new line 

Explicação:

No trecho de código acima, incluímos o ' ' na constante de string para fornecer o efeito de uma nova linha a ela. Como resultado, a constante de string quebra a instrução em várias linhas.

Agora vamos considerar outra solução.

Solução 2: usando aspas triplas, ''' ou ''' para armazenar constantes de string multilinhas

 # defining a string value my_string = '''This is my string literal... this is my new line''' # printing the string value print('String:', my_string) 

Saída:

 String: This is my string literal... this is my new line 

Explicação:

No trecho de código acima, usamos aspas triplas, ''' para armazenar constantes de string multilinhas.

Usando barra invertida antes das aspas finais

A barra invertida '' é responsável por escapar da string e causar o erro de sintaxe.

Consideremos o seguinte exemplo.

Exemplo:

 # storing a directory path my_string = 'D:PythonMy_Folder' # printing the string value print('String:', my_string) 

Saída:

 File 'D:Python	ernarypy.py', line 2 my_string = 'D:PythonMy_Folder' ^ SyntaxError: EOL while scanning string literal 

Explicação:

No trecho de código acima, usamos a barra invertida '' para separar os caminhos da pasta uns dos outros. Porém, durante a execução do programa, o interpretador Python gerou o erro de sintaxe.

A última barra invertida antes das aspas escapa da constante de string e o interpretador Python considera ' como um único personagem. Esta sequência de escape é traduzida em aspas (') .

Podemos resolver esse problema usando o seguinte trecho de código.

Solução:

 # storing a directory path my_string = 'D:\Python\My_Folder\' # printing the string value print('String:', my_string) 

Saída:

 String: D:PythonMy_Folder 

Explicação:

No trecho de código acima, usamos o '\' na constante da string. Como resultado, o interpretador Python executa essa string sem gerar um erro.