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.
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