PYTHON
Python se ha vuelto popular en los últimos tiempos, por la facilidad para
desarrollar en plataformas nativas (Windows, Linux, OSx, etc), la sencillez del
lenguaje, los tipos de datos, etc.
A
continuación y antes de empezar a jugar con el lenguaje, vamos a ver algunas
características.
CARACTERISTICAS
Sintáxis
limpia y legible
Capacidad
de Introspección
Orientación
a Objetos bastante intuitiva
Soporte
de paquetes en jerarquía
Manejo
de errores basado en excepciones
Tipos
de datos dinámicos de alto nivel
Extensa
librería y módulos third-party
Se
pueden escribir nuevos módulos facilemente en C, C++ (en Java -Jython- y .NET
-IronPython-)
Python
puede incluirse en aplicaciones que necesitan una interfaz programable.
Python es un lenguaje de programación
multiparadigma. Esto significa que más que forzar a los programadores a adoptar
un estilo particular de programación, permite varios estilos: programación
orientada a objetos, programación imperativa y programación funcional. Otros
paradigmas están soportados mediante el uso de extensiones.
Python usa tipado dinámico y conteo de referencias para la administración de
memoria.
Una característica importante de Python es la resolución dinámica de nombres;
es decir, lo que enlaza un método y un nombre de variable durante la ejecución
del programa (también llamado ligadura dinámica de métodos).
Otro objetivo del diseño del lenguaje era la facilidad de extensión. Se pueden
escribir nuevos módulos fácilmente en C o C++. Python puede incluirse en
aplicaciones que necesitan una interfaz programable.
Aunque la programación en Python podría considerarse en algunas situaciones
hostil a la programación funcional tradicional del Lisp, existen bastantes
analogías entre Python y los lenguajes minimalistas de la familia Lisp como
puede ser Scheme.
LISP:
Es un lenguaje diseñado para la manipulación de fórmulas simbólicas. Más
adelante, nació su aplicación a la inteligencia artificial. El Lisp (o LISP)
es una familia de lenguajes de programación de computadora de tipo
multiparadigma con una larga historia y una sintaxis completamente entre
paréntesis.
Scheme:
fue el primer dialecto de Lisp que usó ámbito estático o léxico (en lugar de
dinámico) de forma exclusiva. También fue uno de los primeros lenguajes de
programación con continuaciones explícitas.
PRIMEROS PASOS
Empecemos a jugar un poco con el lenguaje. Lo primero que necesitamos, es
instalar Python. Yo estoy usando la versión 2.7 de Python, que es la versión
que tiene más librerías disponibles y la más estable. Hay otras versiones, pero
para aprender la 2.7 está bien.
Windows:
Tenemos dos opciones: Bajar ActivePython, que nos provee una GUI y es lo más
recomendable para empezar. La opción que nos queda, es descargar Python desde
su web oficial Python.org. En la
web oficial, están los links (inclusive los links a ActivePython y otras
alternativas).
Mac
OSx: Para los usuarios de Mac, la cosa es más sencilla. Mac ya trae una versión
de Python de consola pre-instalada. Si quieren la última versión, pueden
descargarla del de Python.org en un .dmg. Al instalar Python, van a tener un
GUI, una consola y una completa librería de ayuda. Los usuarios de Mac OS 9,
van a tener que descargar Python de la web, ya que no trae ninguna versión
pre-instalada.
Nota: Cuando se instala Python desde
una imagen, la versión pre-instalada del sistema operativo se mantiene. Si usas
la terminal más que la GUI, al correr las aplicaciones ten en cuenta la versión
que estás usando de Python.
Código
:
#
Version pre-instalada
$
/usr/local/bin/python
Python
2.3.3 (#2, Dec 23 2003, 22:56:29)
[GCC
3.1 20020420 (prerelease)] on darwin
Type
"help", "copyright", "credits" or
"license" for more information.
>>>
#
Version de la página oficial
$
python
Python
2.7 (r27:82508, Jul 3 2010, 20:17:05)
[GCC
4.0.1 (Apple Inc. build 5493)] on darwin
Type
"help", "copyright", "credits" or
"license" for more information.
>>>
Para volver a la línea de comandos de la terminal, presioná CTRL+D.
Linux:
para usar Python en Linux, vamos a tener que estar familiarizados con la
consola y el comando apt.
Código
:
$
sudo apt-get install python
Así de sencillo. Para otras distribuciones de linux como Red Hat, van a tener
que usar un repositorio y elegir la version 2.7 de la lista, entrar al
directorio rpms/ y elegir la versión más alta. Luego con el comando rpm, la
instalan.
Código
:
$
wget http://python.org/ftp/python/version/rpms/archivo_a_descargar.rpm
$
rpm -Uvh archivo_descargado.rpm
Hola
Mundo
Vamos a escribir nuestras primeras líneas en Python. Podemos usar cualquier
editor de preferencia para escribir el código (Coda, Python IDLE, ActivePython,
VIM). Los archivos de Python tienen la extensión .py
Usando la consola accedemos así:
Código
:
#
Entramos en el entorno de VIM y podemos empezar a editar nuestro archivo. Para
empezar a escribir presionamos "[b] i [/b]", para salir del modo de
escritura presionamos Escape, para guardar los cambios "[b]: w [/b]"
y para salir de VIM "[b]: q [/b]".
$
vim directorio/miArchivo.py
Vamos a escribir una función simple y más adelante vamos a explicar que hace
cada cosa, la sintáxis del lenguaje y algunos detalles importantes que hacen al
lenguaje. Escribimos en nuestro editor, las siguientes líneas:
Código :
def
SumarNumeros(x, y):
print 'Resultado: ' + str(x+y)
SumarNumeros(3,4)
Ahora ejecutemos nuestro código. Si estás en un entorno GUI, generalmente la
tecla rápida es F5 o Run Module. Si estás en la consola:
Código :
$
python archivo.py
Si el resultado no es un error de interpretación podemos estar contentos. Hemos
realizado nuestro primer script en Python con total éxito. Pero expliquemos un
poco más lo que hemos hecho.
Código :
def
SumarNumeros(x, y):
Las funciones en Python se declaran con def, seguido del nombre de la función y
sus parámetros (si son múltiples parámetros, se separan por comas). No
declaramos el tipo de dato que retorna la función, esto es porque Python es un
lenguaje de tipos dinámicos (los tipos de datos se establecen en el momento de
la ejecución). Tampoco definimos si retorna un valor o no. Esto es porque Python
SIEMPRE retorna un valor. Si no retornamos nada en la función, el valor de
retorno por defecto es None (el valor nulo en Python)
Código
:
print
'Resultado: ' + str(x+y)
Imprimimos el resultado de la suma de los parámetros (valores tipo enteros)
junto con un texto. Algo a tener en cuenta: la función print no concatena
distintos tipos de datos. Por eso usamos la función str para convertir el
resultado de la suma (entero) en un string. Si no usáramos esta función,
recibiríamos un error. ¿Has hecho la prueba?
Código
:
print
'Resultado: ' + (x+y)
Código
:
SumarNumeros(3,4)
Corremos la función y le enviamos dos números como parámetros.
¿Dónde
carajos están las llaves y los corchetes?
Buena pregunta. Python tiene una característica que, a mi opinión, es bastante
interesante y práctica: Python no usa llaves, corchetes ni palabras claves en
la definición de funciones, bucles, sentencias, etc.
En las funciones, no existen palabras claves para delimitar donde empieza y
termina la función. El único delimitador son los dos puntos ":" y el
indent (o sangría) del código.
Código
:
def
SumarNumeros(x, y):
print x+y
def
RestarNumeros(x, y):
print x-y
El inicio de la función lo delimitan los dos puntos, el final de la función lo
define el indent inverso. Debemos tener en cuenta que los espacios en blanco,
en Python toman relevancia. El indent debe ser constante (4 espacios es lo más
usado), de lo contrario recibiremos errores de interpretación a la hora de
ejecutar nuestro script.
A pesar de que al principio esto puede resultar molesto no poder delimitar
bloques como lo hacemos en otros lenguajes, con el tiempo lo vamos a agradecer.
Imaginen un mundo donde usar tabulaciones sea un requisito y no un simple
asunto de estilo. Para cualquier programador que edite un archivo, el codigo se
verá limpio, bien ordenado siempre.