lunes, 7 de enero de 2019

Usar tildes y eñes en Python

Python es un lenguaje de programación ampliamente usado para todo tipo de proyectos. Es usado también para realizar scripts de administración de sistemas que requieren una complejidad excesiva para realizarlos en bash, por lo que se usa casi un día sí y otro también.
Hoy vamos a ver cómo solucionar un problema que se da en ocasiones: cómo usar tildes, eñes y otros caracteres usados en castellano sin que nos de el siguiente error:
SyntaxError: Non-ASCII character '\xc3' in file ./script.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Veamos nuestro script de ejemplo:
#!/usr/bin/env python2

nombre = raw_input("Introduce tu nombre: ") # Preguntar cuál es el nombre del usuario
print "Hola", nombre
En los comentarios se ha usado una vocal tildada, y es la que provoca el error comentado cuando se intenta ejecutar la aplicación.
Para evitar esta situación de error en Python 2.x, hay que añadir una linea comentada al inicio del fichero .py que indique la codificación del texto usada. En nuestro caso será latin-1:
#!/usr/bin/env python2
# -*- coding: latin-1 -*-

nombre = raw_input("Introduce tu nombre: ") # Preguntar cuál es el nomnbre del usuario
print "Hola", nombre
Ahora la aplicación se ejecutará con normalidad y aceptará esos caracteres propios del castellano.
Indicar que Python 3.x no tiene este problema. Se pueden usar los caracteres descritos en comentarios sin que se produzcan errores.