EOL durante a varredura do literal de string em Python
Este tutorial discutirá o erro de sintaxe EOL durante a varredura do literal de string em Python.
Strings brutos em Python
Strings brutos são usados para especificar expressões regulares em Python. Antes das aspas iniciais, uma string bruta é declarada por um r
ou R
. Uma string bruta não precisa de nenhum caractere de escape e trata a barra invertida como uma string literal por convenção. O fragmento de código a seguir demonstra o funcionamento de uma string bruta.
print(r"\t\\")
Produção:
\t\\
Agora, vamos ver como isso ficaria em uma string normal.
print("\t\\")
Produção:
\
A diferença é cristalina. Quando usamos uma string bruta, o interpretador python considera \t\\
como \t\\
, mas quando usamos uma string regular, o interpretador Python considera \t\\
como uma guia e o seguinte \
como um caractere de escape para o último \
.
EOL durante a varredura do literal de string em Python
A única limitação com essas strings brutas é que só podemos terminá-las com um número par de barras invertidas. Se uma string bruta termina com um número ímpar de barras invertidas, o interpretador Python mostra o erro de sintaxe EOL while scanning string literal
. Isso ocorre porque, mesmo em strings brutas, as aspas podem ser escapadas por uma barra invertida. Com um número ímpar de barras invertidas no final, o interpretador pensa que a última barra invertida é usada para escapar das aspas de fechamento e continua procurando o final da string. Este fenômeno foi demonstrado no exemplo de codificação abaixo.
print(r'\t\\\')
Produção:
File "<ipython-input-1-d2ab522bcdab>", line 1
print(r'\t\\\')
^
SyntaxError: EOL while scanning string literal
Demonstramos o erro EOL while scanning string literal
ao escrever strings brutas em Python.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn