Python Desde Cero

download Python Desde Cero

of 54

Transcript of Python Desde Cero

  • 7/25/2019 Python Desde Cero

    1/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 paradesarrollar 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.

    InstalacinOk, ya que conocemos un poco de Python, empecemos a usarlo. Lo primero es saber que

    existen dos versiones disponibles.

    http://codehero.co/author/carlos.htmlhttp://codehero.co/author/carlos.htmlhttp://codehero.co/author/carlos.html
  • 7/25/2019 Python Desde Cero

    2/54

    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 instaladoHomebrew. 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 alPATHdel usuario.

    $ export PATH=/usr/local/share/python:$PATH

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

    Framework. Esto se realiza porque la versin de Python que vena conSnow Leopardse

    http://mxcl.github.io/homebrew/http://mxcl.github.io/homebrew/
  • 7/25/2019 Python Desde Cero

    3/54

    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 mismamanera utilizando el siguiente comando:

    $ brew install python3 --framework

    Windows

    Descarguemos desdepython.org/releasesla 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.

    $ suo a-apt-repository ppa:fkrull/easnakes

    $ suo apt-!et upate

    $ suo apt-!et install python"#

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

    el sistema.

    Cmo usarloUna 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.

    http://python.org/download/releases/http://python.org/download/releases/
  • 7/25/2019 Python Desde Cero

    4/54

    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#pyy 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%:&Python"Una vez ah, ejecutamospython#exe

    Si nos aparece lo siguiente, accedimos satisfactoriamente al Shell de Python:

    Python "##' ()"##3:*"+'3c, Apr . "*," "*:'":+3

    01%% +#"#, (Apple 2nc# buil '(ot 34on arwin

    Type 5help5 5copyri!ht5 5creits5or 5license5for more information#

    666

    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 elShell. La funcionalidad ms importante que ofrece es lacapacidad de crear y modificar archivos.

    Hola Mundo!

  • 7/25/2019 Python Desde Cero

    5/54

    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%trl 7 8.

    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%trl 7 9) y lo vamos a llamartutorial.py. Ahora para

    correrlo desde elIDLElo nico que tenemos que hacer es presionar la tecla'y el programa

    automticamente se ejecutar.

    Python "##' ()3#3#*:b;afb.*ebf" Apr . "*," ",:'":+3

    01%% +#"#, (Apple 2nc# buil '(ot 34on arwin

    Type 5copyri!ht5 5creits5or 5license(5for more information#

    666

    ================================

  • 7/25/2019 Python Desde Cero

    6/54

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

    Ejecucin Sencilla vs. EngorrosaYa vimos que podemos ejecutar un script desde elIDLE GUI, ahora veamos otras maneras

    como podemos ejecutar dicho script.

    Vamos a suponer que queremos ejecutar el archivotutorial.py, existen dos maneras para

    hacerlo la manera sencilla o la manera engorrosa:

    Va Engorrosa

    Navegamos hasta el directorio donde se encuentra ubicadotutorial.py(En mi caso esta en la

    carpeta ~/Documents/Tutoriales/Python/capitulo1/) y luego usamos el comandopython + el

    nombre del archivopara ejecutarlo, veamos como sera ese cdigo:

    $ c@/ocuments/Tutoriales/Python/capitulo,/

    $ python tutorial#py

    $ Hola >uno?

    Una vez ejecutado el script nos imprime elHola muno?al igual como lo hizo cuando locorrimos desde IDLE de Python.

    Va Sencilla

    Lo primero que hay que hacer es abrir eltutorial.pycon 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

    B?/usr/local/bin/python

    Nos quedara lo siguiente:

    B?/usr/local/bin/python

    printCHola>uno?D

    http://eric-ide.python-projects.org/http://eric-ide.python-projects.org/
  • 7/25/2019 Python Desde Cero

    7/54

    Lo segundo, tendramos que darle permisologa de ejecucin atutorial.pycon la siguiente

    instruccin en el terminal

    $ chmo '' 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 >uno?

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

  • 7/25/2019 Python Desde Cero

    8/54

    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 enpython#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 tipeamospython

    Si les aparece el siguiente mensaje quiere decir que ya estamos dentro del Shell

    Python"##'(efaultEct,,"*,""*:,+:3

    01%%+#"#,%ompatibleApple%lan!+#*(ta!s/Apple/clan!-+,;#*#*4onarwin

    Type5help55copyri!ht55creits5or5license5formoreinformation#

    666

    Observamos que estamos usando Python 2, configuracin que dejamos en

    el captulo anterior (Python "##'). Si por alguna razn decidieron instalar

    Python 3, estn atentos porque pueden existir algunas diferencias en los

    comandos de cdigo que vamos a usar.

  • 7/25/2019 Python Desde Cero

    9/54

    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

    Dondenombrees el nombre que le quieras dar a la variable y)alores el valor que le quieras

    asignar a dicha variable.

    Tipos de DatosNmeros

    Veamos un ejemplo:

    666estaos=,"

    Estaramos asignando,"a la variableestaos.

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

    666estaos

    ,"

    Python soporta diferente tipos de nmeros por ejemplo:

    Enteros (int)

    666entero=,*

    Decimales (Float)

    666ecimal=,*#'

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

    otros lenguajes, Python lo descifra por ti.

  • 7/25/2019 Python Desde Cero

    10/54

    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:

    666saluo=CFien)enioa%oehero#coD

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

    666saluo

    GFien)enio a %oehero#coG

    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:

    666mensae=5icen Iue &G%oehero#co&Ges el meor sitio para aprener apro!ramar5

    666mensae

    5icen Iue G%oehero#coG es el meor sitio para aprener a pro!ramar5

    Booleans

    Representacin de Verdadero(True) o Falso(False) dentro de una variable. Veamos un

    ejemplo:

    666esHombre=True

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

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

    666esHombre

    True

    En Python es importante que la primera letra deTrueoalseeste en

    mayscula.

  • 7/25/2019 Python Desde Cero

    11/54

    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:

    666miJista=0,"34

    Observemos que todos los objeto que queramos encapsular deben estar

    entre corchetes0 4.

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

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

    666miJista

    0,"34

    Las listas pueden contener objetos diferentes, por ejemplo:

    666miJista=0,GcoeheroGalse4

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

    666miJista=0,0+KcoeheroL.4True4

    Ahora si queremos saber o retornar un valor en especfico dentro de una lista lo hacemos de lasiguiente manera:

    nombre_de_la_lista[El nmero del objeto en el orden de creacin]

    Veamos un ejemplo:

    666miJista=0,0+GcoeheroG.4True4

    666miJista0*4

    ,

    666miJista0"4

    True

  • 7/25/2019 Python Desde Cero

    12/54

    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 crearvariables en lnea y asignarles su valor respectivamente, veamos como se hace:

    666abc=,"3

    Observemos que creamos una variablea, unaby unacy le asignamos 1, 2, 3

    respectivamente.

    As mismo podemos asignarle el mismo valor a mltiples variables veamos como:

    666a=b=c=,

    Asignamos 1 a la variablea,byc.

    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 = *,mensae = CD.

    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 usamosB, todo lo que este escrito despus del numeral no ser tomado en cuenta.

    Veamos unos ejemplos:

    666Bsto es un comentario666nombre=KcoeheroLBAsi!namos el nombre el sitio a la )ariable nombre

    Operadores

  • 7/25/2019 Python Desde Cero

    13/54

    Son elementos que nos permiten manipular las variables. Veamos unos ejemplos:

    "73BAiciMn retorna '

    ;-'B9ustracciMn retorna 3

    "NB>ultiplicaciMn retorna ,"

    ,"/3Bi)ision retorna +

    O3B>oulo retorna el resiuo e la i)ision , en este caso#

    3NN"BPotencias retorna .

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

    Veamos el siguiente cdigo:

    x="

    x 7=+BA!re!a + a x ahora x es i!ual a

    x /="Bi)ie x por " ahora x es i!ual 3

    Los operadores no solo funcionan con nmeros, tambin los podemos usar en cadenas de

    caracteres. Por ejemplo, si tenemos las siguientes variablesa = K%oeheroLyb = Kes el

    meorLlas podemos concatenar de la siguiente forma:

    666a=G%oehero G

    666b=Ges el meorG

    666a7b

    G%oehero es el meorG

    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:

  • 7/25/2019 Python Desde Cero

    14/54

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

    esActi)o=True

    ifesActi)o:

    printK%oeheroestaacti)oL

    Lo que hace el cdigo anterior es chequear si la variableesActi)oes igual aTrue, como la

    variable la declaramosesActi)o = True, al ejecutar el script nos va a retornar%oehero esta

    acti)o.

    Tipos de condicionales:

    Menor

    Valida si una variable es menor a otra.

    if"3:

    printKosesmenorIuetresL

    Mayor

    Valida si una variable es mayor a otra.

    if"63:

    printKosesmayorIuetresL

    Igual

    Valida si una variable es igual a otra.

    if"==3:

    printKosesi!ualIuetresL

    Diferente

    Valida si una variable es diferente a otra.

    if"?=3:

  • 7/25/2019 Python Desde Cero

    15/54

    printKosesiferenteIuetresL

    Mayor Igual

    Valida si una variable es diferente a otra.

    if"6=3:

    printKosesmayoroi!ualIuetresL

    Menor Igual

    Valida si una variable es diferente a otra.

    if"=3:

    printKosesmenoroi!ualIuetresL

    Hasta ahora vimos la manera de ejecutar un solo bloque de cdigo pero que pasa cuando

    quiero ejecutar diferentes bloques, sencillo, usamos el comandoelse. Veamos un ejemplo:

    esActi)o=alse

    ifesActi)o:

    printKsacti)oL

    else:

    printK8oestaacti)oL

    Si queremos ejecutar ms de dos bloques con varias condiciones usamos el comandoelif.

    Veamos como:

    a=,'

    ifa3:

    printKsmenorIuetresL

    elifa==':

    printKsi!ualacincoL

    else:

    printKsmayorIueIuinceL

  • 7/25/2019 Python Desde Cero

    16/54

    Bucles

    Es una sentencia que se realiza repetidas veces a un trozo aislado de cdigo. Hoy vamos a

    aprender los bucles mas bsicos que sonforywhile

    Bucle For

    Es un bucle en la que se puede indicar el nmero mnimo de iteraciones. Veamos un ejemplo:

    miJista=0,"3+'4

    forainmiJista:

    printa

    Si lo ejecutamos obtenemos:

    ,

    "

    3

    +

    '

    Bucle While

    Su propsito es repetir un bloque de cdigo mientras una condicin se mantenga verdadera.

    ab=*'

    whileab:

    printa

    a7=,

    Observemos que en este caso para detener el ciclo necesitamos aumentar

    el valor de la variableacon la siguiente instruccina 7= ,

    Si lo ejecutamos obtenemos:

  • 7/25/2019 Python Desde Cero

    17/54

    *

    ,

    "

    3

    +

    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!

  • 7/25/2019 Python Desde Cero

    18/54

    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 vecesdeseemos. 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 tiLa 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:

    Bnuestros os precios e los artQculosarticulo,=,* Barticulo , posee un precio e ,*

    articulo"="' Barticulo " posee un precio e "'

    eftotaliRar%ompra(:

    http://codehero.co/python-desde-cero-variables-operadores-y-estructuras-de-control/http://codehero.co/python-desde-cero-variables-operadores-y-estructuras-de-control/
  • 7/25/2019 Python Desde Cero

    19/54

    costoTotal=articulo,7articulo"

    printcostoTotal

    totaliRar%ompra(

    Para definir una funcin en Python lo nico que debemos usar es la palabra claveefy luego

    colocar el nombre que le queremos dar a la funcin, en este casototalizarCompra. 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 losif,while, etc . Para ms informacin te invito a repasar el captuloanterior).

    Para poder ejecutar dicha funcin lo nico que necesitamos hacer es tipear el nombre de la

    funcin seguida de dos parntesis (e.j.totaliRar%ompra().

    Si ejecutamos el script podemos observar que nos retorna35, lo que es correcto.

    $ python"# carrito%ompra#py

    $ 3'

    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 paraque esta funcin tome algunos argumentos o valores externos.

    Imaginemos por un momento que la funcintotaliRar%osto(la queremos usar en otra parte

    de nuestro programa, pero en vez de siempre sumar los mismos valoresarticulo, 7 articulo",

    sumemos artculos diferentes con diferentes precios. Para llevar a cabo este requerimiento,

    vamos a usar losargumentos, los cuales van a estar definidos dentro de los dos parntesis

    que posee la funcin.

    Unargumentoes 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:

    articulo,=,* Barticulo , posee un precio e ,*

    http://codehero.co/python-desde-cero-variables-operadores-y-estructuras-de-control/http://codehero.co/python-desde-cero-variables-operadores-y-estructuras-de-control/
  • 7/25/2019 Python Desde Cero

    20/54

    articulo"=+* Barticulo " posee un precio e +*

    articulo3=' Barticulo 3 posee un precio e '

    articulo+="' Barticulo + posee un precio e "'

    eftotaliRar%ompra(item,item":

    costoTotal=item,7item"

    printcostoTotal

    totaliRar%ompra(articulo,articulo"

    Losargumentosvan definidos dentro de los parntesis de la funcin. Cada

    argumento que deseamos generar debe tener tu propio nombre y debenestar 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

    msarticulo3yarticulo+para poder probar el script con diferentes artculos. Segundo,

    agregamos dos argumentositem,yitem"los cuales mantendrn el valor de los artculos

    para as despus sumarlos.

    Por ltimo, veamos qu pasa cuando invocamos la funcin con los dos

    argumentostotaliRar%ompra(articulo, articulo". Lo primero que ocurre es que las dos

    variables que le pasamosarticulo,yarticulo"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

    (item,yitem").

    Suficiente explicaciones, ahora ejecutemos el script y veamos que nos devuelve:

    $ python"# carrito%ompra#py

    $ '*

  • 7/25/2019 Python Desde Cero

    21/54

    Como podemos ver, nos devolvi la suma delarticulo,yarticulo". Ahora veamos que pasa si

    en vez de pasarlearticulo,yarticulo"como argumentos, le pasamosarticulo3yarticulo+.

    Cambiemos solo la ltima lnea del script portotaliRar%ompra(articulo3 articulo+

    articulo,=,* Barticulo , posee un precio e ,*

    articulo"=+* Barticulo " posee un precio e +*

    articulo3=' Barticulo 3 posee un precio e '

    articulo+="' Barticulo + posee un precio e "'

    eftotaliRar%ompra(item,item":

    costoTotal=item,7item"

    printcostoTotal

    totaliRar%ompra(articulo3articulo+

    Si ejecutamos el script podemos observar que exitosamente imprime30, la suma

    delarticulos3y delarticulo+, ya que esos fueron los argumentos que les pasamos.

    $ python"# carrito%ompra#py

    $ 3*

    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 detotaliRar%ompra(articulo3 articulo+en

    vez de imprimirla?

    La respuesta es sencilla, lo nico que debemos hacer es asignar en la funcin que variable vaa hacer el valor de retorno. La manera de asignar o decirle a la funcin que retorne una

    variable es con la palabra clavereturn.Veamos el ejemplo anterior, vamos a remplazar la

    palabraprintde la funcintotaliRar%ompra(por la palabrareturn. As la funcin sabr que

    deber retornar el valor decostoTotaly no imprimirlo.

    articulo,=,* Barticulo , posee un precio e ,*

  • 7/25/2019 Python Desde Cero

    22/54

    articulo"=+* Barticulo " posee un precio e +*

    articulo3=' Barticulo 3 posee un precio e '

    articulo+="' Barticulo + posee un precio e "'

    eftotaliRar%ompra(item,item":

    costoTotal=item,7item"

    returncostoTotal

    total,=totaliRar%ompra(articulo,articulo"

    total"=totaliRar%ompra(articulo3articulo+

    printtotal,

    printtotal"

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

    variablestoatl,ytotal", los valores correspondientes a la suma de sus artculos, es

    decir,total,va a recibir la suma dearticulo,yarticulo", ytotal"va a recibir la suma

    dearticulo3y articulo4.

    Si ejecutamos el script observamos:

    $ python"# carrito%ompra#py

    $ '*

    $ 3*

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

    La manera para invocar dichas funciones es exactamente la misma como invocamos las

    funciones que desarrollamos nosotros pero con la nica deferencia quenodebemos definirlas

    con anterioridad.

  • 7/25/2019 Python Desde Cero

    23/54

    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

    ladocumentacin de Python.

    str()

    Primero, veamos una de las funciones ms usadas en Python: el convertidor astring. 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=,*

    printGl nSmero es G7numero

    Si ejecutamos ese script nos encontraremos con un error ya que le estamos pidiendo a Pythonque aada un nmero a una cadena de caracteres. Es en este caso dondesrt()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 que7no significar sumar los dos elementos

    sino concatenar o juntar dos cadenas de caracteres. Veamos como:

    numero=,*

    printGl nSmero es G7str(numero

    Ahora si ejecutamos este trozo de cdigo, observamos que nos imprime la cadena de

    caracteres sin ningn problema:

    $ l nSmero es ,*

    str()no solo acepta valores tipo integer, tambin puede aceptar diferente tipos de dato como

    por ejemplo Booleans.

    bool=True

    printGl )alor e la )ariable es G7str(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:

    http://www.python.org/http://www.python.org/
  • 7/25/2019 Python Desde Cero

    24/54

    caena=GHola %oehero?G

    printlen(strin!

    Si ejecutamos el cdigo vemos que imprime 14, que es el nmero de caracteres que posee

    eseHola %oehero?.

    $ ,+

    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 derange,

    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=ran!e(,,

    print(numeros

    Lo nico que necesitamos para usar la funcin es pasarle como argumento el nmero que

    deseamos alcanzarran!e(numero.

    Es importante saber que la funcin genera el ciclo de nmero hasta elnmero 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=ran!e(',,

    print(numeros

    Podemos observar que range tambin puede tomar dos argumentos, siendo el primero elnmero 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=ran!e(',,"

    print(numeros

  • 7/25/2019 Python Desde Cero

    25/54

    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.

    ConclusinEn 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!

  • 7/25/2019 Python Desde Cero

    26/54

    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 dePython. 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 ultimocaptulo, crear un carrito de compra

    (ecommerce). Solo que esta vez vamos a calcular el impuesto de un articulo

    en especifico dado su precio.

    efcalcular2mpuesto(precioimpuesto:

    precio8ue)o=precio/,**N(,**7impuesto

    returnprecio8ue)o

    Observemos que fue sencillo de realizar, lo que hicimos fue definir una funcin

    llamadacalcular2mpuestola cual toma dos argumentosprecioyimpuesto, para luego

    calcular y retornar el valor total del articulo.

    http://codehero.co/python-desde-cero-funciones/http://codehero.co/python-desde-cero-funciones/http://codehero.co/python-desde-cero-funciones/http://codehero.co/python-desde-cero-funciones/
  • 7/25/2019 Python Desde Cero

    27/54

    Para que este cdigo sea o cumpla como un mdulo en Python, lo nico que tenemos que

    hacer es guardarlo con la extensin#pyen el mismo directorio donde residen nuestros otros

    scripts de la aplicacin. Vamos a guardar el archivo con el siguiente nombre:nanRas#pyy as

    nuestro mdulo ser el mdulo de finanzas.

    Cmo importar un mdulo?

    Para usar los mdulos existen dos posibilidades, podemos usar la palabra claveimporto la

    palabra clavefrom.importes la manera ms simple y ms comun de usar, ya que importa

    todas las funcionalidades existentes dentro del archivo#pyen donde este alojado ese mdulo.

    Veamos como importar el ejemplo anterior en donde tenamos el mdulo de finanzas

    (nanRas#py):

    importnanRas

    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

    funcincalcular2mpuestoque definimos anteriormente.

    La otra manera es usando la palabra clavefrom, 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 elfrom. Una delas prcticas ms recomendadas dentro de Python es hacer uso de la palabrafromcuando 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:

    fromnanRasimportcalcular2mpuesto

    Observemos que necesitamos especificar de que mdulo queremos obtener nuestra funcin

    confrom 7 >UVJEy luego la funcin que queremos importarimport 7 V8%2U8. En

    nuestro caso, del mdulo definanzasimporta la funcincalcularImpuesto.

    Tambin puedes importar varias funciones a la vez, solo necesitas separarlas por comas.

    fromnanRasimportcalcular2mpuestocalcularescuento

    Incluso puedes importar todas las funciones usando unwildcard

  • 7/25/2019 Python Desde Cero

    28/54

    fromnanRasimportN

    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:

    importnanRas

    printnanRas#calcular2mpuesto(,**'

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

    Veamos cuales son esos mdulos:

    math

    os

    datetime

    urllib2

    math

    El mdulo demathnos provee el acceso a funciones y constantes matemticas. Veamos unos

    ejemplos:

    importmath

    math#piBPi 3#,+###

    math#e B8Smero e uler "#,###

    math#e!rees(" B" raianes = ,,+#'. !raos

    http://docs.python.org/2/library/index.htmlhttp://docs.python.org/2/library/index.htmlhttp://docs.python.org/2/library/index.html
  • 7/25/2019 Python Desde Cero

    29/54

    math#raians(*B* !raos = ,#*+ raianes

    math#sin(" B9eno e " raianes

    math#cos(*#' B%oseno e *#' raianes

    math#tan(*#"3BTan!ente e *#"3 raianes

    math#factorial('B, N " N 3 N + N ' = ,"*

    math#sIrt(+. B

  • 7/25/2019 Python Desde Cero

    30/54

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

    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 funcionalidadpathya que es la ms

    comn.Pathnos permite manipular y encontrar propiedades de los archivos y carpetas que

    existen en el sistema. Vemos unos ejemplos:

    fromosimportpath

    path#exists(5/Vsers/Picca5B%heIue si un irectorio existe

    path#!etatime(5/Vsers5B

  • 7/25/2019 Python Desde Cero

    31/54

    Al igual que en el ejemplo anterior, se descargar el HTML decodehero.copero 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 todasaqu.

    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, comoimportarlos 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 claveclass,

    seguida del nombre que le quieras asignar, seguido de un doble punto. Veamos un ejemplo:

    classmascota:

    http://docs.python.org/2/library/urllib2.htmlhttp://codehero.co/python-desde-cero-modulos/http://docs.python.org/2/library/urllib2.htmlhttp://codehero.co/python-desde-cero-modulos/
  • 7/25/2019 Python Desde Cero

    32/54

    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, nopuede 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 claseDe nada nos sirve una clase sin atributos que la definan, es por eso que debemos asignarle a

    laclase mascotaalgunas propiedades. Veamos como:

    classmascota:

    numeroZeZpatas=*

    color=CmarrMnD

    Observemos que para definir los atributos, lo nico que tenemos que haceres declarar algunas variables dentro de la clase. En el ejemplo,

    declaramosnumeroZeZpatasycolor, 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 defectoya que sino el intrprete dispararuna excepcin.

    Nombre de atributos- Los nombres que le asignes a los atributos siempre deben ser

    los ms sencillos y descriptivos posibles.

  • 7/25/2019 Python Desde Cero

    33/54

    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 unavariable el nombre de la clase seguida de parntesis. Veamos como, siguiendo el ejemplo

    anterior:

    classmascota:

    numeroZeZpatas=*

    color=CmarrMnD

    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 estructuranombreZ)ariable 7 # 7 nombreZatributo. Veamos

    como, dado el ejemplo anterior:

    perro#numeroZeZpatas

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

    en el atributonumeroZeZpatas, es decir, estamos obteniendo el valor de la

    propiedadnumeroZeZpatasdel objetoperro.

    Nosotros podemos tratar es propiedad como si fuera una variable cualquiera, es por eso que

    podemos modificar el valor de ese atributo. Veamos como:

    classmascota:

    numeroZeZpatas=*

    color=CmarrMnD

    perro=mascota(

    perro#numeroZeZpatas=+

  • 7/25/2019 Python Desde Cero

    34/54

    perro#color=Cne!roD

    print5l perro tiene C 7 perro#numeroZeZpatas 7 C patas y es e color C 7 perro#color

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

    lperrotiene +patasyesecolorne!roEsto se debe a que modificamos las propiedades del objetoperro, ya que es unperrolo que

    estbamos definiendo, decid asignarle 4 al nmero de patas con la siguiente

    expresinperro#numeroZeZpatas = +y negro al color de la mascota con la siguiente

    expresinperro#color = Cne!roD.

    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 losmtodosvienen a ayudarnos.

    LosMtodos, 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 clavedef, luego, el nombre que le queramos

    dar al mtodo, seguido de(self:. Veamos como definir un mtodo siguiendo los ejemplos

    anteriores:

    classmascota:

    numeroZeZpatas=*

    color=CmarrMnD

    ef ormir(self:

    print5RRR5

    perro=mascota(

  • 7/25/2019 Python Desde Cero

    35/54

    Observemos que definimos un mtodo dentro de la clase mascota

    llamadoormir. La funcin de este mtodo es imprimirzzzcada 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 argumentoselfpara 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 mltiplesargumentos a una funcin. Para mayor informacin sobre como pasar argumentos a una

    funcin, revisa elcaptulo sobre funciones.

    Ahora, Cmo usamos ese mtodo que acabamos de crear?. Sencillo, lo nico que tenemos

    que hacer es instanciar una clasemascotay luego, a travs de ella, invocar al mtododormir.

    Veamos como:

    classmascota:

    numeroZeZpatas=*

    color=CmarrMnD

    ef ormir(self:

    print5RRR5

    perro=mascota(

    perro#ormir(

    Observemos que al final del script invocamos al mtodo dormir cuandoejecutamos esta instruccinperro#ormir(. Siempre para referenciar las

    funciones debemos usar el siguiente esquemanombreZ)ariable 7 # 7

    nombreZm[too 7 (. Es importante destacar que no debemos pasarle

    ningn atributo al mtodo ya que Python lo hace por nosotros para

    satisfacer el argumentoself, es decir, Python automticamente le pasa

    http://codehero.co/python-desde-cero-funciones/http://codehero.co/python-desde-cero-funciones/http://codehero.co/python-desde-cero-funciones/http://codehero.co/python-desde-cero-funciones/
  • 7/25/2019 Python Desde Cero

    36/54

    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.

    RRR

    ConclusinEn 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!

  • 7/25/2019 Python Desde Cero

    37/54

    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, esdecir, 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 mduloMySQLdb, 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 elPython 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

    http://codehero.co/python-desde-cero-clases-atributos-y-metodos/http://codehero.co/python-desde-cero-clases-atributos-y-metodos/
  • 7/25/2019 Python Desde Cero

    38/54

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

    compatible con Python te recomiendo que visitesInterfaces y APIs de

    bases de datos para Python.

    Es importante resaltar que si quieres hacer uso de una base de datosdigamos 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 desdePython.

    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:

    B?/usr/bin/python

    import>y9\Jb

    Si se produce el siguiente error entonces significa que el mdulo deMySQLdbno est

    instalado en nuestra mquina:

    Traceback(mostrecentcalllast:

    ile5prueba#py5line3inmoule6

    import>y9\Jb

    2mportrror:8omoulename>y9\Jb

    Existen dos formas para instalar el mdulo deMySQLdb, la manera sencilla, ejecutando el

    siguiente comando:

    $ pip install >y9\J-python

    http://wiki.python.org/moin/DatabaseInterfaceshttp://wiki.python.org/moin/DatabaseInterfaceshttp://wiki.python.org/moin/DatabaseInterfaceshttp://wiki.python.org/moin/DatabaseInterfaces
  • 7/25/2019 Python Desde Cero

    39/54

    y la manera engorrosa, donde debemos descargar deDescargas MySQLdbel mdulo, y una

    vez descargado ejecutamos los siguientes comandos:

    $ !unRip >y9\J-python-,#"#"#tar#!R

    $ tar -x)f >y9\J-python-,#"#"#tar

    $ c >y9\J-python-,#"#"

    $ python setup#py buil

    $ 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 llamadaprueba_db.

    Haber creado un usuario de conexin que posea las siguientes

    caractersticas:usuario: usuariopruebayclave: prueba123.

    La mejor manera de ver y entender como conectarnos a una base de datos en Python es atravs de un ejemplo:

    B?/usr/bin/python

    import>y9\Jb

    B stablecemos la conexiMn con la base e atos

    b=>y9\Jb#connect(5localhost55usuarioprueba55prueba,"355pruebaZb5

    B Preparamos el cursor Iue nos )a a ayuar a realiRar las operaciones con la base eatos

    cursor=b#cursor(

    http://sourceforge.net/projects/mysql-python/http://sourceforge.net/projects/mysql-python/
  • 7/25/2019 Python Desde Cero

    40/54

    B ecutamos un Iuery 9\J usano el m[too execute( Iue nos proporciona el cursor

    cursor#execute(59J%T ]

  • 7/25/2019 Python Desde Cero

    41/54

    import>y9\Jb

    B stablecemos la conexiMn con la base e atos

    b=>y9\Jb#connect(5localhost55usuarioprueba55prueba,"355pruebaZb5

    B Preparamos el cursor Iue nos )a a ayuar a realiRar las operaciones con la base eatos

    cursor=b#cursor(

    B %reamos la tabla empleao

    sIl=5%PJAE (

    8E>F

  • 7/25/2019 Python Desde Cero

    42/54

    La operacininsertares necesario si deseas crear registros en una tabla de base de datos.

    Veamos como insertar un empleado dentro de la tablaEMPLEADOque creamos

    anteriormente.

    B?/usr/bin/python

    import>y9\Jb

    B stablecemos la conexiMn con la base e atos

    b=>y9\Jb#connect(5localhost55usuarioprueba55prueba,"355pruebaZb5

    B Preparamos el cursor Iue nos )a a ayuar a realiRar las operaciones con la base e

    atoscursor=b#cursor(

    B Preparamos el Iuery 9\J para insertar un re!istro en la F

    sIl=5289PJAE (8E>F

  • 7/25/2019 Python Desde Cero

    43/54

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

    datos es necesario usarb#commit(. Si queremos reversar los cambios

    efectuados podemos usarb#rollback(.

    Cmo obtenemos todos los empleados

    registrados en la base de datos?

    La operacinlecturaes 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 unaconsulta 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 mtodoexecute.

    Veamos como obtener todos los registros de la tablaEMPLEADO:

    B?/usr/bin/python

    import>y9\Jb

    B stablecemos la conexiMn con la base e atos

    b=>y9\Jb#connect(5localhost55usuarioprueba55prueba,"355pruebaZb5

    B Preparamos el cursor Iue nos )a a ayuar a realiRar las operaciones con la base eatos

    cursor=b#cursor(

    B Preparamos el Iuery 9\J para obtener toos los empleaos e la F

  • 7/25/2019 Python Desde Cero

    44/54

    sIl=59J%T N >PJAE5

    try:

    B ecutamos el comano

    cursor#execute(sIl

    B Ebtenemos toos los re!istros en una lista e listas

    resultaos=cursor#fetchall(

    forre!istroinresultaos:

    nombre=re!istro0*4

    apellio=re!istro0,4

    ea=re!istro0"4

    sexo=re!istro034

    salario=re!istro0+4

    B 2mprimimos los resultaos obtenios

    print5nombre=Os apellio=Os ea=O sexo=Os salario=O5O(nombreapellioeasexosalario

    except:

    print5rror: 8o se puo obtener la ata5

    B 8os esconectamos e la base e atos

    b#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=%arlosapellio=Piccaea="+sexo=>salario="***

    Cmo modificamos a un empleado en labase de datos?

    La operacinactualizacinsignifica 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"***:

  • 7/25/2019 Python Desde Cero

    45/54

    B?/usr/bin/python

    import>y9\Jb

    B stablecemos la conexiMn con la base e atos

    b=>y9\Jb#connect(5localhost55usuarioprueba55prueba,"355pruebaZb5

    B Preparamos el cursor Iue nos )a a ayuar a realiRar las operaciones con la base eatos

    cursor=b#cursor(

    B Preparamos el Iuery 9\J para moicar el re!istro

    sIl=5VPAT >PJAE 9T A = A 7 , _H

  • 7/25/2019 Python Desde Cero

    46/54

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

    datos. Veamos como eliminar a un empleado cuyo apellido sea igual aPicca:

    B?/usr/bin/python

    import>y9\Jb

    B stablecemos la conexiMn con la base e atos

    b=>y9\Jb#connect(5localhost55usuarioprueba55prueba,"355pruebaZb5

    B Preparamos el cursor Iue nos )a a ayuar a realiRar las operaciones con la base eatos

    cursor=b#cursor(

    B Preparamos el Iuery 9\J para eliminar al empleao

    sIl=5JT >PJAE _H

  • 7/25/2019 Python Desde Cero

    47/54

    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!

  • 7/25/2019 Python Desde Cero

    48/54

    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 mduloMySQLdb, 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

    Pythonopen(. Esta funcin crea un objetoarchivoque se utiliza para llamar a otros mtodos

    de apoyo asociados. Veamos cual es la sintaxis:

    obectoZarchi)o=open(leZname0accessZmoe40bu`erin!4

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

    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

    r Abre un archivo de slo lectura. El puntero del archivo se coloca en el principio del archivo

    predeterminado.

    rb Abre un archivo de slo lectura en formato binario.

    http://codehero.co/python-desde-cero-bases-de-datos/http://codehero.co/python-desde-cero-bases-de-datos/
  • 7/25/2019 Python Desde Cero

    49/54

    Modo

    s Descripcin

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

    rb+ Abre un archivo para la lectura y la escritura en formato binario. El puntero del archivo esta

    archivo.

    w Abre un archivo para escribir solamente. Sobrescribe el archivo si el archivo existe. Si el ar

    nuevo archivo para escritura.

    wb Abre un archivo para escribir slo en formato binario. Sobrescribe el archivo si el archivo e

    existe, se crea un nuevo archivo para escritura.

    w+ Abre un fichero para escritura y lectura. Sobrescribe el archivo existente si existe el archivocrea 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 archi

    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

    objetoarchivo.closed !evuelve true si el archivo est cerrado, false en caso contrario.

    objetoarchivo.mode !evuelve el modo de acceso con el "ue se abri el archivo.

  • 7/25/2019 Python Desde Cero

    50/54

    Atributo Descripcin

    objetoarchivo.name !evuelve el nombre del archivo.

    Veamos un ejemplo sobre como utilizar todo lo que hemos visto hasta ahora:

    B?/usr/bin/python

    B Abrimos el archi)o coehero#txt

    fo=open(5coehero#txt55wb5

    print58ombre el archi)o : 5fo#name

    print5%errao o no : 5fo#close

    print5>oo e apertura : 5fo#moe

    Si ejecutamos el script anterior debemos obtener el siguiente resultado:

    8ombreelarchi)o: coehero#txt

    %erraoono: alse

    >ooeapertura: wb

    Cmo cerramos un archivo?Para cerrar un archivo usamos el mtodoclose(, 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 mtodoclose()para cerrar los

    archivos una vez que terminemos de trabajar con ellos.

    Veamos la sintaxis que debemos usar:

    obectoZarchi)o#close(

    Veamos como usarclose(con un ejemplo:

  • 7/25/2019 Python Desde Cero

    51/54

    B?/usr/bin/python

    B Abrimos el archi)o coehero#txt

    fo=open(5coehero#txt55wb5

    print58ombre el archi)o: 5fo#name

    B %erramos el archi)o coehero#txt

    fo#close(

    Si ejecutamos el script anterior obtenemos:

    8ombreelarchi)o: coehero#txt

    Cmo escribir un archivo?En Python para escribir informacin en un archivo usamos el mtodowrite(.

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

    Python pueden tener datos binarios y no slo de texto.

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

    cadena.

    Veamos la sintaxis para poder escribir en un archivo:

    obectoZarchi)o#write(strin!

    Observemos questrin!es el texto que queremos escribir en el archivo.

    Veamos como usarwrite(con un ejemplo:

    B?/usr/bin/python

    B Abrimos el archi)o coehero#txt

    fo=open(5/tmp/coehero#txt55wb5

    fo#write(5%oehero es una !ran pa!ina para aprener a pro!ramar Python#&n9Q!uenosen coeheroblo!??&n5

  • 7/25/2019 Python Desde Cero

    52/54

    B %erramos el archi)o coehero#txt

    fo#close(

    Si ejecutamos el script anterior obtenemos:

    %oeheroesuna!ranpa!inaparaaprenerapro!ramarPython#9Q!uenosencoeheroblo!??

    Cmo leer un archivo?En Python para leer informacin de un archivo usamos el mtodorea(.

    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:

    obectoZarchi)o#rea(0count4

    Observemos quecountes el numero de bytes a leer del archivo.

    Veamos como usarrea(con un ejemplo:

    B?/usr/bin/python

    B Abrimos el archi)o coehero#txt

    fo=open(5/tmp/coehero#txt55r75

    str=fo#rea(,*

    print5Ja lectura es : 5str

    B %erramos el archi)o coehero#txt

    fo#close(

    Si ejecutamos el script anterior obtenemos:

    Jalecturaes:%oeheroes

  • 7/25/2019 Python Desde Cero

    53/54

    Cmo renombramos un archivo?En Python para renombrar un archivo usamos el mtodorename(.

    Veamos la sintaxis para poder renombrar un archivo:

    os#rename(currentZleZnamenewZleZname

    Observemos quecurrentZleZnamees el nombre del archivo que queremos

    renombrar ynewZleZnamees el nuevo nombre que le queremos dar.

    Veamos cmo usarrename(con un ejemplo:

    B?/usr/bin/python

    importos

    B

  • 7/25/2019 Python Desde Cero

    54/54

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