Comunidad de diseño web y desarrollo en internet

Tutorial básico de Python

Python: 1. Introducción


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.
En mi caso particular, necesitaba desarrollar una aplicación y para eso necesitaba una API que sólo estaba disponible para Python y JAVA. JAVA es muy renombrado, pero quise probar con algo nuevo, un tanto desconocido. Me propuse a aprender Python desde cero, con las bases de programación que ya tenía de otros lenguajes. A continuación y antes de empezar a jugar con el lenguaje, vamos a ver algunas características.

Características


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

Wikipedia :

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.


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 sos de usar 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
    

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

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate