Python es uno de los lenguajes de programación multiparadigma, más potente y que menor curva de aprendizaje demanda. Con Python puedes crear tanto robustas aplicaciones de escritorio como Web, con muy pocas líneas de código y en muy poco tiempo. En esta guía te propongo aprender Python programando “a lo grande” ¿Te animas al desafío?

El desafío

Comenzaremos programando con pocas introducciones. El objetivo, es que desde el comienzo, tomes tu editor de textos favoritos, te sientes a programar a la par de cada capítulo, ejecutes tus códigos y aprendas mientras programas.

Al final de cada capítulo, encontrarás un “chuleta” con el resumen de lo que habrás aprendido. Y con tan solo 90′ por capítulo, en 15 horas estarás en condiciones de programar, como un verdadero Pythonista.

¿Qué necesitas?

Un editor de textos
Pues desempolva tu legendario editor de textos, ese favorito que has tenido por siempre. ¿No tienes un editor de textos favorito? Si tienes un S.O. GNU/Linux échale un vistazo a esta lista de editores de texto para Linux. En cambio si utilizas Windows, puedes descargar Notepad++ para Windows

Instalar Python
Si utilizas un SO GNU/Linux, seguramente ya tienes Python instalado. Para comprobarlo, abre una terminal y simplemente escribe:

python

y pulsa enter.

Nota: Si utilizas MacOS X, el procedimiento para comprobar si tienes Python instalado, es el mismo.

¿Aparece un texto como este?

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Entonces ¡Tienes Python instalado!

¿No ves el texto anterior?
Entonces escribe:

sudo apt-get install python

Y ¡Listo! Sigue las instrucciones en pantalla y tendrás Python instalado.

En cambio, si utilizas Windows puedes lee el tutorial completo de instalación Instalando Python en Windows de Ricardo Azpeitia en Foros del Web.

Ahora sí, ¿estás listo? ¡A programar!

Capítulo I: primeros pasos con Python

Hagamos algo útil. Crearemos un módulo Python mediante el cual, nos pida algunos datos y con ellos, nos imprima un presupuesto para enviarle nuestros clientes.

Módulo

Un módulo es un archivo escrito en Python, con extensión .py

El resultado final tras ejecutar el módulo que crearemos, será similar al siguiente:

Este será el resultado de nuestro primer módulo hecho en Python

  1. Abre el editor de textos
  2. Copia el código que está más abajo
  3. Guarda el archivo como presupuesto.py
  4. Abre una terminal/consola
  5. Navega hasta el directorio donde haz guardado el archivo
  6. Ahora escribe python presupuesto.py y ve como funciona.

Tip

Un módulo python puede ejecutarse mediante una terminal escribiendo:
python nombre_del_archivo.py

Código fuente que debes copiar y pegar en el archivo presupuesto.py

# -*- coding: utf-8 -*- 
class ModeloDePresupuesto:
    # Datos comerciales 
    titulo = "PRESUPUESTO"
    encabezado_nombre = "Eugenia Bahit"
    encabezado_web = "www.eugeniabahit.com.ar"
    encabezado_email = "[email protected]"

    # Datos impositivos 
    alicuota_iva = 21

    # Propiedades relativas al formato 
    divline = "="*80

    # Setear los datos del cliente 
    def set_cliente(self): 
        self.empresa = raw_input('\tEmpresa: ')
        self.cliente = raw_input('\tNombre del cliente: ')

    # Setear los datos básicos del presupuesto 
    def set_datos_basicos(self): 
        self.fecha = raw_input('\tFecha: ')
        self.servicio = raw_input('\tDescripción del servicio: ')
        importe = raw_input('\tImporte bruto: $')
        self.importe = float(importe)
        self.vencimiento = raw_input('\tFecha de caducidad: ')

    # Calcular IVA 
    def calcular_iva(self): 
        self.monto_iva = self.importe*self.alicuota_iva/100

    # Calcula el monto total del presupuesto 
    def calcular_neto(self): 
        self.neto = self.importe+self.monto_iva

    # Armar el presupuesto 
    def armar_presupuesto(self): 
        """ 
            Esta función se encarga de armar todo el presupuesto 
        """
        txt = '\n'+self.divline+'\n'
        txt += '\t'+self.encabezado_nombre+'\n'
        txt += '\tWeb Site: '+self.encabezado_web+' | '
        txt += 'E-mail: '+self.encabezado_email+'\n'
        txt += self.divline+'\n'
        txt += '\t'+self.titulo+'\n'
        txt += self.divline+'\n\n'
        txt += '\tFecha: '+self.fecha+'\n'
        txt += '\tEmpresa: '+self.empresa+'\n'
        txt += '\tCliente: '+self.cliente+'\n'
        txt += self.divline+'\n\n'
        txt += '\tDetalle del servicio:\n'
        txt += '\t'+self.servicio+'\n\n'
        txt += '\tImporte: $%0.2f | IVA: $%0.2f\n' % (
                                  self.importe, self.monto_iva)
        txt += '-'*80
        txt += '\n\tMONTO TOTAL: $%0.2f\n' % (self.neto)
        txt += self.divline+'\n'
        print txt 
   
    # Método constructor 
    def __init__(self): 
        print self.divline
        print "\tGENERACIÓN DEL PRESUPUESTO"
        print self.divline
        self.set_cliente()
        self.set_datos_basicos()
        self.calcular_iva()
        self.calcular_neto()
        self.armar_presupuesto()

# Instanciar clase 
presupuesto = ModeloDePresupuesto()

Entendiendo el código

Expliquemos el código paso a paso:

enconding – definir codificación de caracteres

# -*- coding: utf-8 -*-

Python necesita que le indiquemos la codificación de caracteres que utilizaremos. Entonces, lo indicaremos en la primera línea del código.

Encoding

Debe ser la primera línea del código
Sintaxis: # -*- coding: CODIFICACION -*-

Clases en Python

class ModeloDePresupuesto:

En la programación, un objeto es una entidad provista de métodos (funciones) y atributos. Haciendo un paralelismo con la realidad, podemos decir que:

Una persona, realiza varias acciones (funciones) como caminar, saltar, correr, comer, dormir, etc. y tiene diferentes atributos como el color de pelo, su estatura, su peso, el color de sus ojos, etc.

Pero, decir “persona” es muy “abstracto”, pues yo no soy “persona”, todos somos personas. Yo soy Eugenia, tu eres José ¿o no te llamas José?, tu madre es Ana (a qué adivino nuevamente: tu madre no se llama Ana) y en definitiva, todos somos objetos: Eugenia, José y Ana y como objetos somos una clase de persona.

Entonces:

Una clase es un “modelo” para definir objetos que pueden realizar las mismas acciones y poseen características similares.

En nuestro caso, crearemos decenas, miles y millones (ojalá!) de presupuestos. Cada uno de nuestros presupuestos, será un objeto que se creará en base al modelo ModeloDePresupuesto definido en la clase.

Clases

Una clase se define mediante class NombreDeLaClase:

Comentando código en Python

Mira las líneas que comienzan con el signo # (como esta):

# Datos comerciales

Todas las líneas comenzadas por # son comentarios en el código fuente. Y aquellos bloques de texto, encerrados entre tres comillas dobles como éste:

""" 
Esta función se encarga de armar todo el presupuesto 
"""

También son comentarios, pero que además, sirven para generar la documentación de un método.

Comentarios

Para comentar y documentar código en Python utiliza:
# comentario o sino """ documentación """

Definición de variables en Python

# Datos comerciales 
    titulo = "PRESUPUESTO"
    encabezado_nombre = "Eugenia Bahit"
    encabezado_web = "www.eugeniabahit.com.ar"
    encabezado_email = "[email protected]"
    # Datos impositivos 
    alicuota_iva = 21

Las variables, en nuestro ModeloDePresupuesto, son las propiedades (o atributos) característicos de nuestro presupuesto. Para definir una propiedad (atributo o variable) se utiliza:

nombre_de_la_variable = dato

variables

Las variables en Python se definen mediante nombre_variable = dato

El nombre de una variable puede empezar (y continuar) por: Mayúsculas, minúsculas, guiones bajos y también contener números.
Algunos ejemplos:

  • variable
  • _otra_variable_
  • variable_con_numero_25
  • VARIABLE_CON_MAYUSCULAS
  • Variable_Mixta

Tipos de datos

Las variables pueden contener datos de diversos tipos, por ejemplo:

Cadenas de texto

nombre_de_la_variable = "Las cadenas de texto van entre comillas"

Números enteros y números flotantes

numero_entero = 100
numero_flotante = 1298.95

Datos booleanos (verdadero o falso)

variable_con_dato_verdadero = True
variable_con_dato_falso = False

Repitiendo cadenas de texto

# Propiedades relativas al formato 
divline ="="*80

Utilizando el asterisco * seguido de un número, estamos indicando la cantidad de veces que repetiremos la cadena de texto colocada entre comillas:

variable_1 = "a"*3

es igual que:

variable_1 = "aaa"

Si has llegado hasta acá sin problemas, eso quiere decir que has cumplido con el primer paso para aceptar el reto de aprender Python programando. No te pierdas el segundo capítulo.

Aprendiendo a Programar en Python en 20 minutos

Como complemento a esta guía, te recomendamos el vídeo de Mejorando.la junto con Arturo Jamaica aprendemos en 20 minutos a programar algo básico en Python. Te recomiendo que vayas al minuto 37 directamente para ir a lo importante del vídeo.