EOL al escanear String Literal en Python

Muhammad Maisam Abbas 22 octubre 2021
  1. Cadenas sin procesar en Python
  2. EOL al escanear String Literal en Python
EOL al escanear String Literal en Python

Este tutorial discutirá el error de sintaxis EOL al escanear el literal de cadena en Python.

Cadenas sin procesar en Python

Las cadenas sin formato se utilizan para especificar expresiones regulares en Python. Antes de las comillas iniciales, una cadena sin formato se declara mediante una r o R. Una cadena sin formato no necesita caracteres de escape y trata la barra invertida como una cadena literal por convención. El siguiente fragmento de código demuestra el funcionamiento de una cadena sin formato.

print(r"\t\\")

Producción :

\t\\

Ahora, veamos cómo se vería esto en una cadena normal.

print("\t\\")

Producción :

	\

La diferencia es muy clara. Cuando usamos una cadena sin procesar, el intérprete de Python considera \t\\ como \t\\, pero cuando usamos una cadena regular, el intérprete de Python considera la \t\\ como una pestaña y la siguiente \ como carácter de escape para el último \.

EOL al escanear String Literal en Python

La única limitación con estas cadenas sin formato es que solo podemos terminarlas con un número par de barras invertidas. Si una cadena sin procesar termina con un número impar de barras invertidas, el intérprete de Python muestra el error de sintaxis EOL while scanning string literal. Esto se debe a que incluso en cadenas sin formato, las comillas se pueden escapar mediante una barra invertida. Con un número impar de barras invertidas al final, el intérprete piensa que la última barra invertida se usa para escapar de las comillas de cierre y sigue buscando el final de la cadena. Este fenómeno se ha demostrado en el siguiente ejemplo de codificación.

print(r'\t\\\')

Producción :

File "<ipython-input-1-d2ab522bcdab>", line 1
    print(r'\t\\\')
                   ^
SyntaxError: EOL while scanning string literal

Demostramos el error EOL while scanning string literal al escribir cadenas sin procesar en Python.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Artículo relacionado - Python String