Anda di halaman 1dari 54

Python desde Cero:

Instalacin & Configuracin


PUBLICADO POR: CARLOS PICCA, EL 10/06/2013

Bienvenido a Python desde Cero, serie en la cual aprenderemos Python desde Cero. En esta
sesin, estudiaremos como instalar y configurar Python en nuestros computadores.

Qu es Python?
Python es un gran lenguaje que puede servir para desarrollar fcilmente tanto aplicaciones
pequeas como aplicaciones de gran embergadura. Entre muchas caractersticas que hacen
de Python un gran lenguaje de programacin ac encontramos las tres principales:

Alto nivel - Ya que su sintaxis es sencilla, lo hace un gran lenguaje para aprender a
programar por primera vez. A su vez facilita el desarrollo de aplicaciones, ya que
acorta el nmero de lneas de cdigo a desarrollar con respecto a otros lenguajes de
programacin.

Multipropsito - Puede ser usado para desarrollar tanto scripts sencillos como para
desarrollar sitios web dinmicos.

Posee una gran librera pre-instalada de apoyo - Cabe la posibilidad que dentro de
la librera ya estn desarrolladas muchas de las cosas comunes que quieras hacer, as
nos evitamos programar un mdulo desde cero.

Instalacin
Ok, ya que conocemos un poco de Python, empecemos a usarlo. Lo primero es saber que
existen dos versiones disponibles.

Versiones
Existen dos versiones activas de Python las cuales podemos descargar:

Python 2
La ms compatible, ya que como ha estado ms tiempo en el mercado existen una gran de
cantidad de libreras que puedes ser usadas con esta versin y as facilitar el desarrollo de
nuestras aplicaciones.

Python 3
Funcionalidades mejoradas con respecto a versin anterior pero es prcticamente
incompatible con Python 2.

Es importante resaltar que escoger la versin es un paso muy importante ya


que migrar de Python 2 a Python 3 no es tan fcil, debido a que usan
sintaxis de desarrollo diferentes.
Para este tutorial vamos a usar la Python 2, as que descarguemos la ultima versin
disponible. A continuacin se muestra el procedimiento a seguir para los diferentes sistemas
operativos:

Mac OS
Para poder instalar la ltima versin de Python (2.7.5) en el sistema operativo debemos tener
previamente instalado Homebrew. Utilizaremos el siguiente comando para iniciar la
instalacin:
$ brew install python --framework

Este paso instalar todos los componentes necesarios y tardar unos minutos, una vez que
culmine debemos exportar est ruta alPATH del usuario.
$ export PATH=/usr/local/share/python:$PATH

La bandera --framework le indica a Homebrew que debe compilar Python en estilo


Framework. Esto se realiza porque la versin de Python que vena con Snow Leopard se

encontraba compilada de esta manera, y se sigue utilizando solo por prevencin de errors en
instalaciones futuras.
Una vez finalizada la instalacin, ya deberamos tener Python corriendo en nuestro sistema.
Nota: Si por el contrario desean instalar la versin 3 de Python lo pueden hacer de la misma
manera utilizando el siguiente comando:
$ brew install python3 --framework

Windows
Descarguemos desde python.org/releases la versin Windows X86-64 MSI Installer (ltima
versin estable de Python 2 para Windows hasta la fecha del tutorial). Una vez descargado,
hacemos doble-click en el instalador y aceptamos todas la condiciones del instalador, no hay
que preocuparnos por configuraciones avanzadas, el instalador es sencillo de usar. Una vez
finalizada la instalacin, ya deberamos tener Python corriendo en nuestro sistema.

Linux
Si se encuentran en una distribucin basada en Debian y quieren instalar una versin de
Python distinta a la que viene con el Sistema Operativo. Existe un PPA (Paquete Personal de
Archivo) que nos facilita la tarea de instalacin.
$ sudo add-apt-repository ppa:fkrull/deadsnakes
$ sudo apt-get update
$ sudo apt-get install python2.7

Si todo funcion exitosamente deberamos tener la ultima versin de Python 2.7 corriendo en
el sistema.

Cmo usarlo
Una vez instalado, nos vamos a encontrar con tres maneras de usar Python:

Python Shell - la consola de Python, la cual nos permite ejecutar comandos lnea por
lnea.

IDLE GUI - una aplicacin que nos permite escribir scripts ms complejos para luego
ejecutarlos de manera sencilla.

Editor de texto - cualquier editor de texto que corra en tu sistema operativo te


permitir escribir un script. Luego lo guardars con la extensin .py y lo ejecutars
desde el Shell.

Shell
Veamos primero el Shell y como interactuar con l:

Mac y Linux
Abrimos el terminal de nuestras mquinas y ingresamos el siguiente comando: python

Windows
Debemos navegar hasta el directorio de instalacin de Python. Por defecto, debera
ser C:\Python27 Una vez ah, ejecutamos python.exe
Si nos aparece lo siguiente, accedimos satisfactoriamente al Shell de Python:
Python 2.7.5 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

IDLE
Para abrir el IDLE de Python navegamos hasta la carpeta de instalacin de Python y
ejecutamos el archivo denominado IDLE (Para Mac/Linux/Windows). Una vez abierto, vemos
que la aplicacin nos proporciona el Shell. La funcionalidad ms importante que ofrece es la
capacidad de crear y modificar archivos.

Hola Mundo!

Desarrollemos nuestro primer programa!, empezamos por crear un archivo nuevo dentro del
IDLE de Python, en mi caso, como estoy usando Mac OS el comando para realizar esta accin
es Ctrl + N .
En el editor de texto que nos aparece, tecleamos la siguiente instruccin:
print Hola Mundo!
La funcin print nos permite imprimir cualquier texto que deseemos mientras este entre
comillas.
Guardamos el documento (en mi caso Ctrl + S ) y lo vamos a llamar tutorial.py. Ahora para
correrlo desde el IDLE lo nico que tenemos que hacer es presionar la tecla F5 y el programa
automticamente se ejecutar.
Python 2.7.5 (v3.3.0:bd8afb90ebf2, Apr 9 2012, 21:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>>
================================
RESTART================================
>>>
Hola Mundo!
>>>

Personalmente pienso que el IDLE de Python no es la mejor manera ni de


aprender ni de desarrollar programas en Python, ya que es muy lento y le
faltan muchas de las caractersticas importantes que ofrecen los editores de
cdigo de hoy en da.
Les dejo una lista de unos de los mejores IDE que andan por ah:

PyScripter (Windows)

Eclipse con PyDev plugin (Windows)

Netbeans for Python (Windows, Mac, Linux, Solaris)

Visual Studio con Python Tools (Windows)

Eric IDE, mejor en Linux, lo encontrars en el Ubuntu Software center

Ejecucin Sencilla vs. Engorrosa


Ya vimos que podemos ejecutar un script desde el IDLE GUI, ahora veamos otras maneras
como podemos ejecutar dicho script.
Vamos a suponer que queremos ejecutar el archivo tutorial.py, existen dos maneras para
hacerlo la manera sencilla o la manera engorrosa:

Va Engorrosa
Navegamos hasta el directorio donde se encuentra ubicado tutorial.py (En mi caso esta en la
carpeta ~/Documents/Tutoriales/Python/capitulo1/) y luego usamos el comando python + el
nombre del archivo para ejecutarlo, veamos como sera ese cdigo:
$ cd ~/Documents/Tutoriales/Python/capitulo1/
$ python tutorial.py
$ Hola Mundo!

Una vez ejecutado el script nos imprime el Hola mundo! al igual como lo hizo cuando lo
corrimos desde IDLE de Python.

Va Sencilla
Lo primero que hay que hacer es abrir el tutorial.py con el IDE o editor de texto de nuestra
preferencia y agregarle la siguiente lnea para indicarle al terminal que lenguaje o motor de
interpretacin va a usar
#!/usr/local/bin/python

Nos quedara lo siguiente:


#!/usr/local/bin/python
print Hola Mundo!

Lo segundo, tendramos que darle permisologa de ejecucin a tutorial.py con la siguiente


instruccin en el terminal
$ chmod 755 tutorial.py

Por ltimo ejecutaramos el archivo desde el terminal de la siguiente manera


$ ./tutorial.py

Si todo esta correcto debera imprimir lo siguiente:


Hola Mundo!

Conclusin
En esta leccin, instalamos un Python desde cero, discutimos las caractersticas importantes
del lenguaje, hablamos sobre las mejores herramientas para escribir nuestro cdigo y hicimos
nuestro primer programa!. Si tienes alguna pregunta, yo estar feliz de responderte en los
comentarios, adems espero que te unas y le eches un vistazo a todo el resto de esta serie.

Python desde Cero: Variables,


Operadores y Estructuras de Control
Bienvenidos una vez ms a Python desde Cero, serie en donde aprendemos Python desde
cero. En el captulo anterior descargamos Python, lo instalamos, nos paseamos por las
diferentes maneras sobre como ejecutar scripts y hicimos nuestro primer programa, un Hola
Mundo!.
Hoy, aprenderemos las variables y sus tipos de datos, los operadores que podemos usar y las
estructuras de control que deberamos utilizar para desarrollar nuestro propio cdigo.
Como el captulo de hoy va a hacer un aprendizaje dinmico, vamos a usar el Shell de Python
ya que nos permite ejecutar lnea por lnea el cdigo que deseemos probar.
Para ejecutar el Shell de Python haremos lo siguiente:

Windows
Debemos navegar a la carpeta de instalacin de Python y hacer doble-click en python.exe .
Les recomiendo que si van a desarrollar en Python, creen un atajo para as no tener que estar
realizando todo este proceso cada vez que queramos iniciar el Shell.

Mac o Linux
Abrimos el Terminal y tipeamos python
Si les aparece el siguiente mensaje quiere decir que ya estamos dentro del Shell
Python 2.7.5 (default, Oct 11 2012, 20:14:37)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Observamos que estamos usando Python 2, configuracin que dejamos en


el captulo anterior ( Python 2.7.5 ). Si por alguna razn decidieron instalar
Python 3, estn atentos porque pueden existir algunas diferencias en los
comandos de cdigo que vamos a usar.

Variables
Pensemos que una variable es un lugar en donde podemos guardar diferentes tipos de datos.
Crear una variable en Python es ms sencillo que en otros lenguajes de programacin. La
estructura es la siguiente:
nombre = valor
Donde nombre es el nombre que le quieras dar a la variable y valor es el valor que le quieras
asignar a dicha variable.

Tipos de Datos
Nmeros
Veamos un ejemplo:
>>> estados = 12

Estaramos asignando 12 a la variable estados .


Si tipeamos el nombre de la variable en el Shell, este nos devolvera el valor. Veamos:
>>> estados
12

Python soporta diferente tipos de nmeros por ejemplo:


Enteros (int)

>>> entero = 10
Decimales (Float)

>>> decimal = 10.5

Como puedes observar no es necesario declarar el tipo de variable como en


otros lenguajes, Python lo descifra por ti.

Cadena de caracteres (Strings)


Podemos almacenar un texto dentro de una variable siempre y cuando este dentro de comillas
simples o dobles. Veamos un ejemplo:
>>> saludo = Bienvenido a Codehero.co

Si tipeamos el nombre de la variable en el Shell, este nos devolvera el valor. Veamos:


>>> saludo
'Bienvenido a Codehero.co'

Si queremos usar comillas simples dentro de una declaracin o viceversa lo


podemos hacer haciendo uso de \ delante de las comillas que deseemos
que pertenezcan al texto. Veamos un ejemplo:
>>> mensaje = "Dicen que \'Codehero.co\' es el mejor sitio para aprender a
programar"
>>> mensaje
"Dicen que 'Codehero.co' es el mejor sitio para aprender a programar"

Booleans
Representacin de Verdadero(True) o Falso(False) dentro de una variable. Veamos un
ejemplo:
>>> esHombre = True

Asignamos a la variable esHombre el valor de True (Verdadero). Si tipeamos el nombre de la


variable en el Shell, este nos devolvera el valor. Veamos:
>>> esHombre
True

En Python es importante que la primera letra de


mayscula.

True

False

este en

Vectores (Array)
Es un conjunto de objetos encapsulados dentro de una sola variable. En Python se denominan
listas. Veamos un ejemplo de cmo crear una lista:
>>> miLista = [1, 2, 3]

Observemos que todos los objeto que queramos encapsular deben estar
entre corchetes

[ ].

En el ejemplo anterior asignamos a miLista los objetos 1, 2 y 3. Si tipeamos el nombre de la


variable en el Shell, este nos devolvera el valor. Veamos:
>>> miLista
[1, 2, 3]

Las listas pueden contener objetos diferentes, por ejemplo:


>>> miLista = [1, 'codehero', False]

Adems, pueden encapsular listas dentro de la misma lista, ejemplo:


>>> miLista = [1, [4, codehero, 9], True]

Ahora si queremos saber o retornar un valor en especfico dentro de una lista lo hacemos de la
siguiente manera:
nombre_de_la_lista[El nmero del objeto en el orden de creacin]
Veamos un ejemplo:
>>> miLista = [1, [4, 'codehero', 9], True]
>>> miLista[0]
1
>>> miLista[2]
True

Debemos observar que en Python los objetos dentro de una lista se indexan
a partir del 0, eso quiere decir que mi primer objeto va estar en la posicin 0
y el segundo en la posicin 1 y as sucesivamente.
Otra caracterstica de porque Python es un lenguaje sencillo de utilizar, es que podemos crear
variables en lnea y asignarles su valor respectivamente, veamos como se hace:
>>> a,b,c = 1,2,3

Observemos que creamos una variable a , una b y una c y le asignamos 1, 2, 3


respectivamente.
As mismo podemos asignarle el mismo valor a mltiples variables veamos como:
>>> a = b = c = 1

Asignamos 1 a la variable a , b y c .

En Python es importante asignarle un valor a una variable la primera vez


que la creamos, de lo contrario nos arrojar un error. La solucin a este
detalle es asignar valores bsicos o neutros dependiendo del tipo de dato.
Ejemplo:

numero = 0 , mensaje = .

Comentarios
Veamos la manera de como comentar el cdigo en Python. Uno crea comentarios
principalmente para recordar que tipo de funcionalidad tiene ese cdigo en particular. Para
comentar usamos # , todo lo que este escrito despus del numeral no ser tomado en cuenta.
Veamos unos ejemplos:
>>> #Esto es un comentario
>>> nombre = codehero #Asignamos el nombre del sitio a la variable nombre

Operadores

Son elementos que nos permiten manipular las variables. Veamos unos ejemplos:
2 + 3 #Adicin, retorna 5
8 - 5 #Sustraccin, retorna 3
2 * 6 #Multiplicacin, retorna 12
12 / 3 #Division, retorna 4
7 % 3 #Modulo, retorna el residuo de la division, 1 en este caso.
3**2 #Potencias, retorna 9

Nosotros tambin podemos asignar a la misma variable el resultado de una operacin.


Veamos el siguiente cdigo:
x=2
x += 4 #Agrega 4 a x, ahora x es igual a 6
x /= 2 #Divide x por 2, ahora x es igual 3

Los operadores no solo funcionan con nmeros, tambin los podemos usar en cadenas de
caracteres. Por ejemplo, si tenemos las siguientes variables a = Codehero y b = es el
mejor las podemos concatenar de la siguiente forma:
>>> a = 'Codehero '
>>> b = 'es el mejor'
>>> a + b
'Codehero es el mejor'

Estructuras de control
Una vez que hayas creado y manipulado variables, las estructuras de control te permitirn
manejar el flujo de la data. Los dos tipos de estructuras que aprenderemos el da de hoy son:

Condicionales
Los condicionales te permiten ejecutar diferentes bloques de cdigo dependiendo de que valor
posea una variable en cuestin. Veamos unos ejemplos:

Para esta parte del tutorial vamos a usar scripts ya que vamos a necesitar
ejecutar ms de una lnea de cdigo a la vez. Para saber cmo ejecutar un
script desde la consola te recomiendo que revises el captulo anterior).
esActivo = True
if esActivo:
print Codehero esta activo

Lo que hace el cdigo anterior es chequear si la variable esActivo es igual a True , como la
variable la declaramos esActivo = True , al ejecutar el script nos va a retornar Codehero esta
activo .

Tipos de condicionales:
Menor
Valida si una variable es menor a otra.
if 2 < 3:
print Dos es menor que tres

Mayor
Valida si una variable es mayor a otra.
if 2 > 3:
print Dos es mayor que tres

Igual
Valida si una variable es igual a otra.
if 2 == 3:
print Dos es igual que tres

Diferente
Valida si una variable es diferente a otra.
if 2 != 3:

print Dos es diferente que tres

Mayor Igual
Valida si una variable es diferente a otra.
if 2 >= 3:
print Dos es mayor o igual que tres

Menor Igual
Valida si una variable es diferente a otra.
if 2 <= 3:
print Dos es menor o igual que tres

Hasta ahora vimos la manera de ejecutar un solo bloque de cdigo pero que pasa cuando
quiero ejecutar diferentes bloques, sencillo, usamos el comando else . Veamos un ejemplo:
esActivo = False
if esActivo:
print Es activo
else:
print No esta activo

Si queremos ejecutar ms de dos bloques con varias condiciones usamos el comando elif .
Veamos como:
a = 15
if a < 3:
print Es menor que tres
elif a == 5:
print Es igual a cinco
else:
print Es mayor que quince

Bucles
Es una sentencia que se realiza repetidas veces a un trozo aislado de cdigo. Hoy vamos a
aprender los bucles mas bsicos que son for y while

Bucle For
Es un bucle en la que se puede indicar el nmero mnimo de iteraciones. Veamos un ejemplo:
miLista = [1,2,3,4,5]

for a in miLista:
print a

Si lo ejecutamos obtenemos:
1
2
3
4
5

Bucle While
Su propsito es repetir un bloque de cdigo mientras una condicin se mantenga verdadera.
a,b = 0,5

while a < b:
print a
a += 1

Observemos que en este caso para detener el ciclo necesitamos aumentar


el valor de la variable a con la siguiente instruccin
Si lo ejecutamos obtenemos:

a += 1

0
1
2
3
4

Conclusin
Esto es todo por ahora, pero hoy cubrimos suficientes tcnicas como para que vayan
practicando. Sintase libres de leer el tutorial una y otra vez hasta que tenga sentido.
Cualquier duda que tengan se las contestar a travs de los comentarios, adems espero que
se unan y le echen un vistazo a todo el resto de la serie!

Python desde Cero: Funciones


Bienvenidos una vez ms a Python desde Cero, curso en el cual aprendemos a programar sin
conocimiento alguno. En el captulo anterior, te ensee todo lo referente al uso de variables,
operadores y estructuras de control. Si eres nuevo en este curso, te recomiendo que le eches
un vistazo a los captulos anteriores para que te pongas en contexto (Captulo 2)
Hoy, aprenderemos todo lo que tiene que ver con las funciones dentro de Python, desde los
tipos hasta los estndares necesarios para desarrollar una buena funcin.

Qu es una Funcin?
Una funcin es un bloque de cdigo el cual puede ser ejecutado cuando y cuantas veces
deseemos. Son de gran ayuda cuando necesitamos que un programa ejecute cierta operacin
muchas veces.
Existen dos tipos de funciones, las creadas por ti, la cuales incluyen el cdigo que tu deseas
ejecutar, y las que vienen incluidas con Python, las cuales sirven para realizar procedimientos
bsicos, como por ejemplo convertir un integer en un string o saber cual es el tamao de dicho
string.

Funciones Creadas por ti


La mejor manera de ensear a usar las funciones, es con un ejemplo, por lo que imaginemos
que queremos hacer un programa para un carrito de compras online el cual toma todos los
costos de los artculos que desees comprar y los suma para luego retornar el costo total de la
compra.
Vamos a escribir una funcin que nos permita agarrar dos precios de artculos de compra,
sumarlos y despus imprimir ese valor. Veamos como hacerlo:
#nuestros dos precios de los artculos
articulo1 = 10 #articulo 1 posee un precio de 10
articulo2 = 25 #articulo 2 posee un precio de 25

def totalizarCompra():

costoTotal = articulo1 + articulo2


print costoTotal

totalizarCompra()

Para definir una funcin en Python lo nico que debemos usar es la palabra clave def y luego
colocar el nombre que le queremos dar a la funcin, en este caso totalizarCompra. Luego,
tipeamos dos parntesis (ms adelante veremos que se puede hacer con esos parntesis
pero por los momentos vamos a mantenerlo simple), y finalmente agregamos dos puntos.
Despus de esto, todo el cdigo que deseemos agregar a la funcin debe estar identado (al
igual que con los if , while , etc . Para ms informacin te invito a repasar el captulo anterior).
Para poder ejecutar dicha funcin lo nico que necesitamos hacer es tipear el nombre de la
funcin seguida de dos parntesis (e.j. totalizarCompra() ).
Si ejecutamos el script podemos observar que nos retorna 35, lo que es correcto.
$ python2.7 carritoCompra.py
$ 35

Argumentos
Hasta los momentos nuestra funcin parece un poco rgida, ya que no puede manejar
variables o valores externos dentro del bloque de cdigo. Veamos como podemos hacer para
que esta funcin tome algunos argumentos o valores externos.
Imaginemos por un momento que la funcin totalizarCosto() la queremos usar en otra parte
de nuestro programa, pero en vez de siempre sumar los mismos valores articulo1 + articulo2 ,
sumemos artculos diferentes con diferentes precios. Para llevar a cabo este requerimiento,
vamos a usar los argumentos, los cuales van a estar definidos dentro de los dos parntesis
que posee la funcin.

Un argumento es la va para pasar informacin a una funcin cuando no


sabemos el valor o valores que esa variable posee.
Confundido?, veamos el ejemplo anterior y salgamos de las dudas. Ya sabemos que
necesitamos agregarle argumentos a la funcin. Veamos como:
articulo1 = 10 #articulo 1 posee un precio de 10

articulo2 = 40 #articulo 2 posee un precio de 40


articulo3 = 5 #articulo 3 posee un precio de 5
articulo4 = 25 #articulo 4 posee un precio de 25

def totalizarCompra(item1, item2):


costoTotal = item1 + item2
print costoTotal

totalizarCompra(articulo1, articulo2)

Los argumentos van definidos dentro de los parntesis de la funcin. Cada


argumento que deseamos generar debe tener tu propio nombre y deben
estar separado por comas. Este acta como una referencia temporal hacia
la informacin que le pasamos a la funcin mientras que esta ejecuta el
bloque del cdigo.
Observemos que lo primero que hicimos fue agregar dos artculos
ms articulo3 y articulo4 para poder probar el script con diferentes artculos. Segundo,
agregamos dos argumentos item1 y item2 los cuales mantendrn el valor de los artculos
para as despus sumarlos.
Por ltimo, veamos qu pasa cuando invocamos la funcin con los dos
argumentos totalizarCompra(articulo1, articulo2) . Lo primero que ocurre es que las dos
variables que le pasamos articulo1 y articulo2 se convierten en los argumentos item1 y item2
respectivamente. Esto siempre ocurre en el orden que que uno define los argumentos, es
decir, la primera variable que pasamos es asignada al primer argumento, las segunda al
segundo argumento y as sucesivamente.
Segundo, las variables que le pasamos se convierten variables locales dentro del bloque de
cdigo de la funcin, esto significa que podemos hacer uso de esas variables fcilmente
( item1 y item2 ).
Suficiente explicaciones, ahora ejecutemos el script y veamos que nos devuelve:
$ python2.7 carritoCompra.py
$ 50

Como podemos ver, nos devolvi la suma del articulo1 y articulo2 . Ahora veamos que pasa si
en vez de pasarle articulo1 y articulo2 como argumentos, le pasamos articulo3 y articulo4 .
Cambiemos solo la ltima lnea del script por totalizarCompra(articulo3, articulo4)
articulo1 = 10 #articulo 1 posee un precio de 10
articulo2 = 40 #articulo 2 posee un precio de 40
articulo3 = 5 #articulo 3 posee un precio de 5
articulo4 = 25 #articulo 4 posee un precio de 25

def totalizarCompra(item1, item2):


costoTotal = item1 + item2
print costoTotal

totalizarCompra(articulo3, articulo4)

Si ejecutamos el script podemos observar que exitosamente imprime 30, la suma


del articulos3 y del articulo4 , ya que esos fueron los argumentos que les pasamos.
$ python2.7 carritoCompra.py
$ 30

Cmo retornar valores dentro de una funcin?


Por ltimo, veamos una de las caractersticas ms importantes dentro del captulo de
funciones, la forma de como retornar valores dentro de una funcin.
Hasta ahora hemos visto como hacer funciones que no retornan ninguna informacin, pero
qu pasa s necesitamos guardar la respuesta de totalizarCompra(articulo3, articulo4) en
vez de imprimirla?
La respuesta es sencilla, lo nico que debemos hacer es asignar en la funcin que variable va
a hacer el valor de retorno. La manera de asignar o decirle a la funcin que retorne una
variable es con la palabra clave return .Veamos el ejemplo anterior, vamos a remplazar la
palabra print de la funcin totalizarCompra() por la palabra return . As la funcin sabr que
deber retornar el valor de costoTotal y no imprimirlo.
articulo1 = 10 #articulo 1 posee un precio de 10

articulo2 = 40 #articulo 2 posee un precio de 40


articulo3 = 5 #articulo 3 posee un precio de 5
articulo4 = 25 #articulo 4 posee un precio de 25

def totalizarCompra(item1, item2):


costoTotal = item1 + item2
return costoTotal

total1 = totalizarCompra(articulo1, articulo2)


total2 = totalizarCompra(articulo3, articulo4)

print total1
print total2

Obviamente, la funcin no va imprimir la respuesta sino que va a devolver a las


variables toatl1 y total2 , los valores correspondientes a la suma de sus artculos, es
decir, total1 va a recibir la suma de articulo1 y articulo2 , y total2 va a recibir la suma
de articulo3 y `articulo4.
Si ejecutamos el script observamos:
$ python2.7 carritoCompra.py
$ 50
$ 30

Funciones Incorporadas
Existen operaciones que son muy usadas dentro de la programacin, es por eso que Python
las incluye para que as las podamos usar en cualquiera de nuestros programas que estemos
desarrollando.
La manera para invocar dichas funciones es exactamente la misma como invocamos las
funciones que desarrollamos nosotros pero con la nica deferencia que no debemos definirlas
con anterioridad.

En este captulo, vamos a pasearnos por la funciones ms importantes y ms usadas dentro


del mundo de la programacin, pero existen miles y miles de funciones que Python pone a tu
disposicin para que hagas uso de ellas, si quieres echarle un ojo te recomiendo
la documentacin de Python.

str()
Primero, veamos una de las funciones ms usadas en Python: el convertidor a string. Muchas
de las veces que uno desarrolla aplicaciones se encuentra con la necesidad de convertir una
variable que contiene un nmero en una cadena de caracteres. Como por ejemplo:
numero = 10
print 'El nmero es ' + numero

Si ejecutamos ese script nos encontraremos con un error ya que le estamos pidiendo a Python
que aada un nmero a una cadena de caracteres. Es en este caso donde srt() sale al
rescate!, ya que esta toma el valor del nmero y lo retorna como un string(cadena de
caracteres). De esta manera Python entender que + no significar sumar los dos elementos
sino concatenar o juntar dos cadenas de caracteres. Veamos como:
numero = 10
print 'El nmero es ' + str(numero)

Ahora si ejecutamos este trozo de cdigo, observamos que nos imprime la cadena de
caracteres sin ningn problema:
$ El nmero es 10

str() no solo acepta valores tipo integer, tambin puede aceptar diferente tipos de dato como
por ejemplo Booleans.
bool = True
print 'El valor de la variable es ' + str(bool)

len()
Otra tarea muy comn es saber cual es el tamao de una cadena de caracteres, es ah donde
Python nos cubre las espaldas y nos proporciona **len(), funcin que toma una cadena de
caracteres y nos retorna el tamao de la misma en forma de nmero. Veamos como usarla:

cadena = 'Hola Codehero!'


print len(string)

Si ejecutamos el cdigo vemos que imprime 14, que es el nmero de caracteres que posee
ese Hola Codehero! .
$ 14

range()
Finalmente, veamos una funcin que no es tan comn pero que viene a la mano una vez que
uno empieza a desarrollar programas ms complejos en Python. Estamos hablando de range,
funcin que nos permite crear una lista de nmeros dado el nmero al cual queremos llegar,
es decir, si queremos crear una lista de nmero del 0 al 10, es mucho ms fcil hacerlo con
esta funcin que tipear todos los nmeros uno a uno.
Veamos como usarla:
numeros = range(11)
print(numeros)

Lo nico que necesitamos para usar la funcin es pasarle como argumento el nmero que
deseamos alcanzar range(numero) .

Es importante saber que la funcin genera el ciclo de nmero hasta el


nmero menor al que le pasamos como argumento. Por lo que si queremos
crear 10 nmeros, debemos pasarle 11 como argumento.
Ahora veamos como hacer si quiero solo los nmero del 5 al 10:
numeros = range(5, 11)
print(numeros)

Podemos observar que range tambin puede tomar dos argumentos, siendo el primero el
nmero inicial y el segundo el nmero final de la serie.
Ya para finalizar veamos como hacer si solo quiero los nmeros impares del 1 al 10:
numeros = range(5, 11, 2)
print(numeros)

Observemos que range tambin puede tomar 3 argumentos, siendo el primero el nmero
inicial y el segundo el nmero final de la serie y el tercero la cantidad de nmeros que debe
sumar entre cada iteracin.

Conclusin
En esta leccin, aprendimos como crear en Python nuestras propias funciones y como usar
las funciones que ya viene incorporadas en el lenguaje!. Si tienes alguna pregunta, yo estar
feliz de responderte en los comentarios, adems espero que te unas y le eches un vistazo a
todo el resto de este curso. Te espero la prxima semana!

Python desde Cero: Mdulos


Bienvenidos una vez ms a Python desde Cero, curso en el cual aprendemos a programar sin
conocimiento alguno. En el captulo anterior, te ensee como crear y usar funciones dentro de
Python. Si eres nuevo en este curso, te recomiendo que le eches un vistazo al captulo
anterior para que te pongas en contexto (Captulo 3)
Hoy, vamos a aprender a desarrollar nuestros propios mdulos, como importarlos en nuestras
aplicaciones y a como usar los que ya vienen incorporados con el lenguaje.

Mdulos
Los mdulos en Python son grupos de funciones alojadas dentro de un archivo .py .
Como observamos en captulos anteriores, uno no puede desarrollar una aplicacin compleja
sin organizar nuestro cdigo en funciones, y mientras que nuestro programa continua
creciendo cada vez ms y ms, vamos a necesitar una manera para organizarlo a un nivel que
no se vuelva engorroso de mantener, es ah donde viene a la mano los mdulos. Con ellos
podemos organizar un grupo de funciones como si fueran un conjunto de herramientas las
cuales podemos hacer uso de ellas cada vez que las necesitemos.
Los mdulos son bastante fciles de crear, ya que son scripts sencillos de Python. Vemos
como crear un mdulo:

Vamos a necesitar abrir un nuevo archivo en un editor de texto o en un IDE


de tu preferencia. Para que el curso tenga sentido, voy a continuar con el
ejemplo que utilizamos en el ultimo captulo, crear un carrito de compra
(ecommerce). Solo que esta vez vamos a calcular el impuesto de un articulo
en especifico dado su precio.
def calcularImpuesto(precio, impuesto):
precioNuevo = precio / 100 * (100 + impuesto)
return precioNuevo

Observemos que fue sencillo de realizar, lo que hicimos fue definir una funcin
llamada calcularImpuesto la cual toma dos argumentos precio y impuesto , para luego
calcular y retornar el valor total del articulo.

Para que este cdigo sea o cumpla como un mdulo en Python, lo nico que tenemos que
hacer es guardarlo con la extensin .py en el mismo directorio donde residen nuestros otros
scripts de la aplicacin. Vamos a guardar el archivo con el siguiente nombre: finanzas.py y as
nuestro mdulo ser el mdulo de finanzas.

Cmo importar un mdulo?


Para usar los mdulos existen dos posibilidades, podemos usar la palabra clave import o la
palabra clave from . import es la manera ms simple y ms comun de usar, ya que importa
todas las funcionalidades existentes dentro del archivo .py en donde este alojado ese mdulo.
Veamos como importar el ejemplo anterior en donde tenamos el mdulo de finanzas
( finanzas.py ):
import finanzas

Observemos que para importar el mdulo no hizo falta escribir la extensin del archivo. Una
vez que Python interprete esta linea de cdigo podemos tener a nuestra disposicin la
funcin calcularImpuesto que definimos anteriormente.
La otra manera es usando la palabra clave from , la cual importar nica y exclusivamente la
funcin que uno le pasa como parmetro, es decir, imaginemos que tenemos un mdulo que
posee miles y miles de funciones, para que importar todas esas funciones dentro de nuestro
script si solo vamos a necesitar una, es en este caso donde viene a la mano el from. Una de
las prcticas ms recomendadas dentro de Python es hacer uso de la palabra from cuando se
esta trabajando con mdulos, ya que salva tiempo de procesamiento y recursos de la mquina
en cuestin.
Veamos como importar una funcionalidad del mdulo de finanzas:
from finanzas import calcularImpuesto

Observemos que necesitamos especificar de que mdulo queremos obtener nuestra funcin
con from + MDULO y luego la funcin que queremos importar import + FUNCIN . En
nuestro caso, del mdulo de finanzas importa la funcin calcularImpuesto.
Tambin puedes importar varias funciones a la vez, solo necesitas separarlas por comas.
from finanzas import calcularImpuesto, calcularDescuento

Incluso puedes importar todas las funciones usando un wildcard

from finanzas import *

Despus de importar los mdulos, la manera de usar las funciones es la siguiente: el nombre
del mdulo, seguido de un punto, seguido del nombre de la funcin a usar. Veamos un
ejemplo:
import finanzas
print finanzas.calcularImpuesto(100, 5)

Si corremos el script, debera imprimir 105. Una prueba sencilla, pero significa que nuestro
mdulo funcion a la perfeccin!

Mdulos Incorporados
Existen miles de mdulos incorporados dentro de Python. Debido a que el rango es extenso,
es imposible cubrirlos todos dentro de este curso, por lo que solo me voy basar en los ms
tiles. Si quieres conocer ms sobre los mdulos incorporados en Python te invito a que le
eches un vistazo a la pgina oficial donde encontrars toda la documentacin necesaria.
Veamos cuales son esos mdulos:

math

os

datetime

urllib2

math
El mdulo de math nos provee el acceso a funciones y constantes matemticas. Veamos unos
ejemplos:
import math

math.pi #Pi, 3.14...


math.e #Nmero de Euler, 2.71...

math.degrees(2) #2 radianes = 114.59 grados

math.radians(60) #60 grados = 1.04 radianes

math.sin(2)

#Seno de 2 radianes

math.cos(0.5) #Coseno de 0.5 radianes


math.tan(0.23) #Tangente de 0.23 radianes

math.factorial(5) #1 * 2 * 3 * 4 * 5 = 120
math.sqrt(49) #Raz cuadrada de 49 = 7

Existe miles de funciones dentro de este mdulo te invito a que las revises todas aqu.

datetime
Si necesitas trabajar con fechas y tiempos, entonces el mdulo datetime es el indicado para ti.
Veamos un ejemplo con los usos ms comunes:
import datetime
from datetime import date
import time

time.time() #Retorna el nmero de segundos desde el 1 de enero de 1970 (Unix


Epoch)

date.fromtimestamp(123456789) #Convierte nmero de segundos en un objeto tipo


date
date.fromtimestamp(time.time()) #Podemos combinar las funciones time y
fromtimestamp para representar el tiempo actual

currentDate = date.fromtimestamp(time.time()) #Creamos una variable con la


representacin del tiempo actual
currentDate.strftime("%d/%m/%y") #Le coloca el siguiente formato a la fecha
DD/MM/YY

currentDate.isoformat() #Le coloca el formato estndar ISO a esa fecha

Existe miles de funciones dentro de este mdulo te invito a que las revises todas aqu.

os
Este mdulo te permite trabajar con el sistema operativo en el cual Python este ejecutndose,
ya sea Windows, Mac o Linux. Nos enfocaremos en la funcionalidad path ya que es la ms
comn. Path nos permite manipular y encontrar propiedades de los archivos y carpetas que
existen en el sistema. Vemos unos ejemplos:
from os import path

path.exists("/Users/Picca") #Cheque si un directorio existe

path.getatime("/Users") #Retorna la fecha en la cual ese directorio fue accedido por


ultima vez
path.getmtime("/Users") #Retorna la fecha en la cual ese directorio fue modificado por
ultima vez

path.getsize("/Users/Picca/Desktop/boot") #Retorna el tamao en bytes de ese archivo

path.join("C:", "Users") #Retorna la siguiente direccin "C:/Users"

Existe miles de funciones dentro de este mdulo te invito a que las revises todas aqu.

urllib2
Este mdulo permite interactuar con la web. La funcin ms comn es la urlopen la cual nos
permite descargar una pgina o un archivo que exista en la web. Veamos unos ejemplos:
import urllib2
urllib2.urlopen("http://codehero.co")

Este scritp descargar el HTML de la pagina web codehero.co.


import urllib2
urllib2.urlopen("http://codehero.co").read(100)

Al igual que en el ejemplo anterior, se descargar el HTML de codehero.co pero ahora solo
nos devolver los primeros 100 caracteres. Para as despus poder extraer los trozos que nos
sean necesarios.
Existe miles de funciones dentro de este mdulo te invito a que las revises todas aqu.

Conclusin
En esta leccin, aprendimos como crear mdulos en Python, como importarlos en nuestros
programas, y como usar los mdulos que vienen incorporados en el lenguaje. Te invito a que
practiques y crees tus propios mdulos ya que lo mejor de todo es que los puedes reutilizar en
diferentes aplicaciones que ests desarrollando. Si tienes alguna pregunta, yo estar feliz de
responderte en los comentarios, adems espero que te unas y le eches un vistazo a todo el
resto de este curso. Te espero la prxima semana!

Python desde Cero: Clases, Atributos y


Mtodos
Bienvenidos una vez ms a Python desde Cero, curso en el cual aprendemos a programar sin
conocimiento alguno. En el captulo anterior, te ensee como crear mdulos en Python, como
importarlos en nuestros programas, y como usar los mdulos que vienen incorporados en el
lenguaje. Si eres nuevo en este curso, te recomiendo que le eches un vistazo al captulo
anterior para que te pongas en contexto (Captulo 4)
Hoy, vamos a aprender a programar orientado a objetos, es decir, vamos a aprender a definir
una clase, como definir sus atributos, como instanciarla y como generar la lgica necesaria
para su completo funcionamiento.

Cmo definimos una clase?


Para definir una clase en Python, solo tenemos que hacer uso de la palabra clave class,
seguida del nombre que le quieras asignar, seguido de un doble punto. Veamos un ejemplo:
class mascota:

Si observamos el ejemplo, podemos apreciar que creamos una clase


llamada mascota.
Debemos resaltar dos puntos importantes a la hora de crear una clase en Python:

Cdigo identado - Todo el cdigo que va poseer la clase debe estar identando, no
puede estar a la misma altura que la declaracin de la clase ya que el interprete
levantar un error.

Sin parntesis - Cuando creamos una clase en Python no debemos colocar


parntesis despus del nombre, a menos, que quisiramos que la misma herede las
caractersticas de otra clase.

Atributos de una clase


De nada nos sirve una clase sin atributos que la definan, es por eso que debemos asignarle a
la clase mascota algunas propiedades. Veamos como:
class mascota:
numero_de_patas = 0
color = marrn

Observemos que para definir los atributos, lo nico que tenemos que hacer
es declarar algunas variables dentro de la clase. En el ejemplo,
declaramos numero_de_patas y color , dos caractersticas de la mascota que
quisiramos guardar en el objeto. En cuanto a los atributos de una clase no
existen lmites, puedes usar cuantos t quieras para cumplir con la definicin
de ese objeto.
Es importante saber que cuando definimos atributos tenemos que estar pendiente de:

Asignarle siempre un valor - Siempre cuando declaremos un atributo en una clase


en Python, debemos asignarle un valor por defecto ya que sino el intrprete disparar
una excepcin.

Nombre de atributos - Los nombres que le asignes a los atributos siempre deben ser
los ms sencillos y descriptivos posibles.

Cmo instanciar una clase?


Una declaracin de una clase no es algo que uno pueda manipular directamente, es por eso
que tenemos que instanciar un objeto de esa clase para as modificar los atributos que esta
posea. Para instanciar una clase en Python, lo nico que tenemos que hacer, es asignar a una
variable el nombre de la clase seguida de parntesis. Veamos como, siguiendo el ejemplo
anterior:
class mascota:
numero_de_patas = 0
color = marrn

perro = mascota()

Ahora que ya sabemos instanciar una


clase, Cmo modificamos sus atributos?
Para referenciar una propiedad o atributo de un objeto en Python, lo nico que tenemos que
hacer es seguir la siguiente estructura nombre_variable + . + nombre_atributo . Veamos
como, dado el ejemplo anterior:
perro.numero_de_patas

Observemos que lo que estamos haciendo, es referenciar el valor contenido


en el atributo numero_de_patas , es decir, estamos obteniendo el valor de la
propiedad numero_de_patas del objeto perro .
Nosotros podemos tratar es propiedad como si fuera una variable cualquiera, es por eso que
podemos modificar el valor de ese atributo. Veamos como:
class mascota:
numero_de_patas = 0
color = marrn

perro = mascota()
perro.numero_de_patas = 4

perro.color = negro
print "El perro tiene + perro.numero_de_patas + patas y es de color + perro.color

Si ejecutamos el cdigo anterior podemos observar que nos imprime lo siguiente:


El perro tiene 4 patas y es de color negro

Esto se debe a que modificamos las propiedades del objeto perro, ya que es un perro lo que
estbamos definiendo, decid asignarle 4 al nmero de patas con la siguiente
expresin perro.numero_de_patas = 4 y negro al color de la mascota con la siguiente
expresin perro.color = negro .

Cmo creamos una lgica dentro de las


clases?
Okey, hasta ahora hemos visto como usar clases y objetos como estructuras o contenedores
de informacin, pero que pasa si queremos hacer tareas ms complejas con su data,
necesitamos una manera de introducir algo de lgica a esos objetos. Es en este momento
cuando los mtodos vienen a ayudarnos.
Los Mtodos, son esencialmente funciones contenidas dentro de las clases. Para definir un
mtodo es exactamente la misma manera como definamos una funcin en captulos
anteriores. La nica diferencia es que esa funcin ahora pertenece a esa clase y para
invocarla tenemos que llamar primero a la variable que posee la clase para despus poder
hacer uso de ese mtodo en particular.
Para definir un mtodo debemos usar la palabra clave def, luego, el nombre que le queramos
dar al mtodo, seguido de (self): . Veamos como definir un mtodo siguiendo los ejemplos
anteriores:
class mascota:
numero_de_patas = 0
color = marrn

def dormir(self):
print "zzz"

perro = mascota()

Observemos que definimos un mtodo dentro de la clase mascota


llamado dormir . La funcin de este mtodo es imprimir zzz cada vez que
lo invoquemos.
Para que un mtodo funcione dentro de una clase es necesario cumplir con lo siguiente:

Extra identado - Todo el bloque del cdigo que vas a definir para ese mtodo va tener
que poseer un extra de identacin para que el interprete de Python lo entienda.

Siempre debe poseer un argumento self - Cada vez que declares un mtodo en
Python, vas a tener que agregarle el argumento self para que cuando ese mtodo sea
invocado, Python le pase el objeto instanciado y as pueda operar con los valores
actuales de esa instancia. Si no incluyes ese argumento y ejecutas el cdigo Python
disparar una excepcin y el programa se detendr.

Si quieres pasarle argumentos creados por ti al mtodo, lo haces como si pasars mltiples
argumentos a una funcin. Para mayor informacin sobre como pasar argumentos a una
funcin, revisa el captulo sobre funciones.
Ahora, Cmo usamos ese mtodo que acabamos de crear?. Sencillo, lo nico que tenemos
que hacer es instanciar una clasemascota y luego, a travs de ella, invocar al mtodo dormir.
Veamos como:
class mascota:
numero_de_patas = 0
color = marrn

def dormir(self):
print "zzz"

perro = mascota()
perro.dormir()

Observemos que al final del script invocamos al mtodo dormir cuando


ejecutamos esta instruccin perro.dormir() . Siempre para referenciar las
funciones debemos usar el siguiente esquema nombre_variable + . +
nombre_mtodo + () . Es importante destacar que no debemos pasarle
ningn atributo al mtodo ya que Python lo hace por nosotros para
satisfacer el argumento self, es decir, Python automticamente le pasa

como argumento la instancia de ese objeto al mtodo que estemos


invocando.
Si ejecutamos el cdigo anterior, debemos observar que imprime el mensaje que escribimos
en el mtodo.
zzz

Conclusin
En esta leccin, aprendimos a programar orientado a objetos, es decir, aprendimos como
definir una clase, como definir sus atributos, como instanciarla y como generar la lgica
necesaria para su completo funcionamiento. Si tienes alguna pregunta, yo estar feliz de
responderte en los comentarios, adems espero que te unas y le eches un vistazo a todo el
resto de este curso. Te espero la prxima semana!

Python desde Cero: Bases de Datos


Bienvenidos una vez ms a Python desde Cero, curso en el cual aprendemos a programar sin
conocimiento alguno. En el captulo anterior, te ensee a programar orientado a objetos, es
decir, aprendimos como definir una clase, como definir sus atributos, como instanciarla y como
generar la lgica necesaria para su completo funcionamiento. Si eres nuevo en este curso, te
recomiendo que le eches un vistazo al captulo anterior para que te pongas en contexto
(Captulo 5 - Clases, Atributos y Mtodos)
Hoy, vamos a aprender todo lo relacionado con el mdulo MySQLdb, en otras palabras,
aprenderemos a conectarnos a una base de datos MySql, a crear tablas, y a como insertar,
obtener, modificar y eliminar registros de la base da datos usando el API de Python para BD.

Bases de Datos
El estndar de Python para las interfaces de bases de datos es el Python DB-API. La mayora
de las interfaces de bases de datos de Python se adhieren a este estndar, por lo que dicho
API es compatible con una amplia gama de servidores de bases de datos, entre ellos:

GadFly

mSQL

MySQL

PostgreSQL

Microsoft SQL Server 2000

Informix

Interbase

Oracle

Sybase

Si quieres saber ms informacin sobre la listas de base de datos


compatible con Python te recomiendo que visites Interfaces y APIs de
bases de datos para Python.
Es importante resaltar que si quieres hacer uso de una base de datos
digamos Oracle (por poner un ejemplo) vas a tener que descargar el mdulo
respectivo para este tipo de base de datos.

Qu es MySQLdb?
MySQLdb es una interfaz para la conexin a un servidor de base de datos MySQL desde
Python.

Cmo instalar MySQLdb?


Antes de continuar, vamos a asegurarnos de que no tengamos instalado MySQLdb en
nuestras mquinas. Creemos un script con lo siguiente y ejecutemoslo:
#!/usr/bin/python

import MySQLdb

Si se produce el siguiente error entonces significa que el mdulo de MySQLdb no est


instalado en nuestra mquina:
Traceback (most recent call last):
File "prueba.py", line 3, in <module>
import MySQLdb
ImportError: No module named MySQLdb

Existen dos formas para instalar el mdulo de MySQLdb, la manera sencilla, ejecutando el
siguiente comando:
$ pip install MySQL-python

y la manera engorrosa, donde debemos descargar de Descargas MySQLdb el mdulo, y una


vez descargado ejecutamos los siguientes comandos:
$ gunzip MySQL-python-1.2.2.tar.gz
$ tar -xvf MySQL-python-1.2.2.tar
$ cd MySQL-python-1.2.2
$ python setup.py build
$ python setup.py install

Asegrate de tener los privilegios de root para realizar la instalacin.

Conexin a la base de datos


Antes de conectarnos a una base de datos en MySQL asegrate de cumplir con lo siguiente:

Haber creado una base de datos llamada prueba_db.

Haber creado un usuario de conexin que posea las siguientes


caractersticas: usuario: usuarioprueba y clave: prueba123.

La mejor manera de ver y entender como conectarnos a una base de datos en Python es a
travs de un ejemplo:
#!/usr/bin/python

import MySQLdb

# Establecemos la conexin con la base de datos


bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )

# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de
datos
cursor = bd.cursor()

# Ejecutamos un query SQL usando el mtodo execute() que nos proporciona el cursor
cursor.execute("SELECT VERSION()")

# Extraemos una sola fila usando el mtodo fetchone()


data = cursor.fetchone()

print "Versin Base de Datos : %s " % data

# Nos desconectamos de la base de datos


bd.close()

Si ejecutamos el script anterior nos debera aparecer lo siguiente:


Versin Base de Datos : 5.0.45

Observemos que un objeto de conexin fue retornado una vez que se


estableci una conexin exitosa con la base de datos, este objeto se asign
a la variable

bd .

Luego, esta variable

bd

es usada para crear un cursor, el

cual es el medio por donde podemos ejecutar queries SQL. En nuestro caso
ejecutamos

SELECT VERSION() ,

dicho query retorna la versin de la base de

datos. Por ltimo, cerramos la sesin establecida con la base de datos para
as no gastar recursos.

Cmo creamos una tabla en la base de


datos?
Una vez que sabemos como establecer una conexin con la base de datos, estamos listos
para crear tablas en la base de datos utilizando el mtodo execute del cursor que creamos
anteriormente. Veamos como crear una tabla denominada empleado dentro de nuestra base
de datos:
#!/usr/bin/python

import MySQLdb

# Establecemos la conexin con la base de datos


bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )

# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de
datos
cursor = bd.cursor()

# Creamos la tabla empleado


sql = "CREATE TABLE EMPLEADO (
NOMBRE CHAR(20) NOT NULL,
APELLIDO CHAR(20),
EDAD INT,
SEXO CHAR(1),
SALARIO FLOAT )"

cursor.execute(sql)

# Nos desconectamos de la base de datos


bd.close()

Observemos que a travs del mtodo

execute

del

cursor

cualquier tipo de query que deseemos, en este caso un

podemos ejecutar
CREATE .

Cmo insertamos un empleado en la base


de datos?

La operacin insertar es necesario si deseas crear registros en una tabla de base de datos.
Veamos como insertar un empleado dentro de la tabla EMPLEADO que creamos
anteriormente.
#!/usr/bin/python

import MySQLdb

# Establecemos la conexin con la base de datos


bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )

# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de
datos
cursor = bd.cursor()

# Preparamos el query SQL para insertar un registro en la BD


sql = "INSERT INTO EMPLEADO (NOMBRE,
APELLIDO, EDAD, SEXO, SALARIO)
VALUES ('Carlos', 'Picca', 24, 'M', 2000)"
try:
# Ejecutamos el comando
cursor.execute(sql)
# Efectuamos los cambios en la base de datos
bd.commit()
except:
# Si se genero algn error revertamos la operacin
bd.rollback()

# Nos desconectamos de la base de datos


bd.close()

Observemos que para que los cambios sean efectuados en la base de


datos es necesario usar bd.commit() . Si queremos reversar los cambios
efectuados podemos usar

bd.rollback() .

Cmo obtenemos todos los empleados


registrados en la base de datos?
La operacin lectura es necesaria si quieres buscar informacin dentro de la base de datos.
Veamos los mtodos ms usados a la hora de ejecutar un lectura en la base de datos desde
Python:

fetchone() - Este mtodo obtiene la primera fila de un conjunto de resultados de una


consulta a la BD.

fetchall() - Este mtodo obtiene todos los registros de un conjunto de resultados de


una consulta a la BD.

rowcount - Este es un atributo de slo lectura y devuelve el nmero de filas afectadas


por el mtodo execute .

Veamos como obtener todos los registros de la tabla EMPLEADO:


#!/usr/bin/python

import MySQLdb

# Establecemos la conexin con la base de datos


bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )

# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de
datos
cursor = bd.cursor()

# Preparamos el query SQL para obtener todos los empleados de la BD

sql = "SELECT * FROM EMPLEADO"


try:
# Ejecutamos el comando
cursor.execute(sql)
# Obtenemos todos los registros en una lista de listas
resultados = cursor.fetchall()
for registro in resultados:
nombre = registro[0]
apellido = registro[1]
edad = registro[2]
sexo = registro[3]
salario = registro[4]
# Imprimimos los resultados obtenidos
print "nombre=%s, apellido=%s, edad=%d, sexo=%s, salario=%d" % (nombre,
apellido, edad, sexo, salario)
except:
print "Error: No se pudo obtener la data"

# Nos desconectamos de la base de datos


bd.close()

Si has seguido los ejemplos anteriores y ejecutas el script, debers obtener un solo empleado
ya que solo habamos insertado un solo registro:
nombre=Carlos, apellido=Picca, edad=24, sexo=M, salario=2000

Cmo modificamos a un empleado en la


base de datos?
La operacin actualizacin significa actualizar uno o ms registros que ya estn disponibles
en la base de datos. Veamos como modificar la edad de un empleado cuyo salario sea igual
a 2000 :

#!/usr/bin/python

import MySQLdb

# Establecemos la conexin con la base de datos


bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )

# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de
datos
cursor = bd.cursor()

# Preparamos el query SQL para modificar el registro


sql = "UPDATE EMPLEADO SET EDAD = EDAD + 1 WHERE SALARIO = 2000"
try:
# Ejecutamos el comando
cursor.execute(sql)
# Efectuamos los cambios en la base de datos
bd.commit()
except:
# Si se genero algn error revertamos la operacin
bd.rollback()

# Nos desconectamos de la base de datos


bd.close()

Cmo eliminamos a un empleado en la


base de datos?

La operacin eliminar es necesario si desea eliminar uno o varios registros de la base de


datos. Veamos como eliminar a un empleado cuyo apellido sea igual a Picca :
#!/usr/bin/python

import MySQLdb

# Establecemos la conexin con la base de datos


bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )

# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de
datos
cursor = bd.cursor()

# Preparamos el query SQL para eliminar al empleado


sql = "DELETE FROM EMPLEADO WHERE APELLIDO=Picca"
try:
# Ejecutamos el comando
cursor.execute(sql)
# Efectuamos los cambios en la base de datos
bd.commit()
except:
# Si se genero algn error revertamos la operacin
bd.rollback()

# Nos desconectamos de la base de datos


bd.close()

Conclusin
En esta leccin, aprendimos todo lo relacionado con el mdulo MySQLdb, en otras palabras,
aprendimos a conectarnos a una base de datos MySql, a crear tablas, y a como insertar,

obtener, modificar y eliminar registros de la base da datos usando el API de Python para BD.
Si tienes alguna pregunta, yo estar feliz de responderte en los comentarios, adems espero
que te unas y le eches un vistazo a todo el resto de este curso. Te espero la prxima semana!

Python desde Cero: Manejo de Archivos


Bienvenidos una vez ms a Python desde Cero, curso en el cual aprendemos a programar sin
conocimiento alguno. En el captulo anterior, te ensee todo lo relacionado con el mdulo
MySQLdb, en otras palabras, aprendimos a conectarnos a una base de datos MySql, a crear
tablas, y a como insertar, obtener, modificar y eliminar registros de la base da datos usando el
API de Python para BD. Si eres nuevo en este curso, te recomiendo que le eches un vistazo al
captulo anterior para que te pongas en contexto (Captulo 6 - Bases de Datos)
Hoy, vamos a aprender todo lo relacionado con el manejo de archivos en Python, desde como
abrirlo hasta como escribir y leer informacin del mismo.

Cmo abrimos un archivo?


Antes de que podamos leer o escribir un archivo, hay que abrirlo con la funcin de
Python open() . Esta funcin crea un objetoarchivo que se utiliza para llamar a otros mtodos
de apoyo asociados. Veamos cual es la sintaxis:
objecto_archivo = open(file_name [, access_mode][, buffering])

Describamos un poco los argumentos de la funcin:

file_name - Nombre del archivo que se desea acceder.

access_mode - Determina el modo en el que el archivo tiene que ser abierto, es decir.
leer, escribir, etc. El modo de acceso de archivos por defecto es de lectura.

buffering - Si el valor de bfer se establece en 0, ningn almacenamiento temporal se


llevar a cabo. Si el valor es 1, el bfer se realizara por linea.

Aqu est una lista con los diferentes modos de apertura de un archivo:

Modo
s

Descripcin

Abre un archivo de slo lectura. El puntero del archivo se coloca en el principio del archivo. Este es
predeterminado.

rb

Abre un archivo de slo lectura en formato binario.

Modo
s

Descripcin

r+

Abre un archivo para lectura y escritura. El puntero del archivo estar en el principio del archivo.

rb+

Abre un archivo para la lectura y la escritura en formato binario. El puntero del archivo estar en el
archivo.

Abre un archivo para escribir solamente. Sobrescribe el archivo si el archivo existe. Si el archivo no
nuevo archivo para escritura.

wb

Abre un archivo para escribir slo en formato binario. Sobrescribe el archivo si el archivo existe. Si
existe, se crea un nuevo archivo para escritura.

w+

Abre un fichero para escritura y lectura. Sobrescribe el archivo existente si existe el archivo. Si el a
crea un nuevo archivo para la lectura y la escritura.

wb+

Abre un archivo, tanto para la escritura y la lectura en formato binario. Sobrescribe el archivo existe
archivo. Si el archivo no existe, se crea un nuevo archivo para la lectura y la escritura.

Cules son los atributos ms importantes


de un archivo?
Una vez que hemos abierto el archivo, podemos obtener la informacin relacionada a el
mismo. Veamos una lista con todos los atributos ms importantes relacionados al tipo de
objeto:

Atributo

Descripcin

objeto_archivo.closed

Devuelve true si el archivo est cerrado, false en caso contrario.

objeto_archivo.mode

Devuelve el modo de acceso con el que se abri el archivo.

Atributo

Descripcin

objeto_archivo.name

Devuelve el nombre del archivo.

Veamos un ejemplo sobre como utilizar todo lo que hemos visto hasta ahora:
#!/usr/bin/python

# Abrimos el archivo codehero.txt


fo = open("codehero.txt", "wb")
print "Nombre del archivo : ", fo.name
print "Cerrado o no : ", fo.closed
print "Modo de apertura : ", fo.mode

Si ejecutamos el script anterior debemos obtener el siguiente resultado:


Nombre del archivo: codehero.txt
Cerrado o no : False
Modo de apertura : wb

Cmo cerramos un archivo?


Para cerrar un archivo usamos el mtodo close() , el cual limpia cualquier informacin que no
haya sido escrita y cierra el archivo. Despus que este mtodo es ejecutado no podemos
ejecutar ninguna escritura.
Python automticamente cierra el archivo una ves que la referencia del objeto es asignada a
un nuevo archivo.

Es una buena practica hacer uso del mtodo close() para cerrar los
archivos una vez que terminemos de trabajar con ellos.
Veamos la sintaxis que debemos usar:
objecto_archivo.close();

Veamos como usar close() con un ejemplo:

#!/usr/bin/python

# Abrimos el archivo codehero.txt


fo = open("codehero.txt", "wb")
print "Nombre del archivo: ", fo.name

# Cerramos el archivo codehero.txt


fo.close()

Si ejecutamos el script anterior obtenemos:


Nombre del archivo: codehero.txt

Cmo escribir un archivo?


En Python para escribir informacin en un archivo usamos el mtodo write() .

Es importante tener en cuenta que las cadenas de caracteres(strings) de


Python pueden tener datos binarios y no slo de texto.
El mtodo
cadena.

write()

no aade un carcter de nueva lnea ('\ n') al final de la

Veamos la sintaxis para poder escribir en un archivo:


objecto_archivo.write(string);

Observemos que

string

es el texto que queremos escribir en el archivo.

Veamos como usar write() con un ejemplo:


#!/usr/bin/python

# Abrimos el archivo codehero.txt


fo = open("/tmp/codehero.txt", "wb")
fo.write( "Codehero es una gran pagina para aprender a programar Python.\nSguenos
en @codeheroblog!!\n");

# Cerramos el archivo codehero.txt


fo.close()

Si ejecutamos el script anterior obtenemos:


Codehero es una gran pagina para aprender a programar Python.
Sguenos en @codeheroblog!!

Cmo leer un archivo?


En Python para leer informacin de un archivo usamos el mtodo read() .

Es importante tener en cuenta que las cadenas de caracteres(strings) de


Python pueden tener datos binarios y no slo de texto.
Veamos la sintaxis para poder leer un archivo:
objecto_archivo.read([count]);

Observemos que

count

es el numero de bytes a leer del archivo.

Veamos como usar read() con un ejemplo:


#!/usr/bin/python

# Abrimos el archivo codehero.txt


fo = open("/tmp/codehero.txt", "r+")
str = fo.read(10);
print "La lectura es : ", str

# Cerramos el archivo codehero.txt


fo.close()

Si ejecutamos el script anterior obtenemos:


La lectura es : Codehero es

Cmo renombramos un archivo?


En Python para renombrar un archivo usamos el mtodo rename() .
Veamos la sintaxis para poder renombrar un archivo:
os.rename(current_file_name, new_file_name)

Observemos que current_file_name es el nombre del archivo que queremos


renombrar y new_file_name es el nuevo nombre que le queremos dar.
Veamos cmo usar rename() con un ejemplo:
#!/usr/bin/python
import os

# Renombramos codehero.txt por codehero2.txt


os.rename( "codehero.txt", "codehero2.txt" )

Cmo removemos un archivo?


En Python para remover un archivo usamos el mtodo remove() .
Veamos la sintaxis para poder leer un archivo:
os.remove(file_name)

Observemos que

file_name

es el nombre del archivo que queremos remover.

Veamos como usar remove() con un ejemplo:


#!/usr/bin/python
import os

# Eliminamos el archivo codehero.txt


os.remove("codehero.txt")

Conclusin
En esta leccin, aprendimos todo lo relacionado con el manejo de archivos en Python, desde
como abrirlo hasta como escribir y leer informacin del mismo. Si tienes alguna pregunta, yo

estar feliz de responderte en los comentarios, adems espero que te unas y le eches un
vistazo a todo el resto de este curso.
Nos vemos en la prxima serie de Python, Python Avanzado!
Hasta entonces...!