Guía Python

Curso ultra-rapido de Python — Para niños de 11 años o mayores

Ver capítulos de Guía Python

Programación Orientada a objetos en Python

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

El desafío

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

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

¿Qué necesitas?

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

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

python

y pulsa enter.

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

¿Aparece un texto como este?

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

Entonces ¡Tienes Python instalado!

¿No ves el texto anterior?
Entonces escribe:

sudo apt-get install python

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

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

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

Capítulo I: primeros pasos con Python

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

Módulo

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

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

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

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

Tip

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

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

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

    # Datos impositivos 
    alicuota_iva = 21

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

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

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

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

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

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

# Instanciar clase 
presupuesto = ModeloDePresupuesto()

Entendiendo el código

Expliquemos el código paso a paso:

enconding – definir codificación de caracteres

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

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

Encoding

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

Clases en Python

class ModeloDePresupuesto:

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

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

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

Entonces:

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

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

Clases

Una clase se define mediante class NombreDeLaClase:

Comentando código en Python

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

# Datos comerciales

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

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

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

Comentarios

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

Definición de variables en Python

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

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

nombre_de_la_variable = dato

variables

Las variables en Python se definen mediante nombre_variable = dato

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

  • variable
  • _otra_variable_
  • variable_con_numero_25
  • VARIABLE_CON_MAYUSCULAS
  • Variable_Mixta

Tipos de datos

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

Cadenas de texto

nombre_de_la_variable = "Las cadenas de texto van entre comillas"

Números enteros y números flotantes

numero_entero = 100
numero_flotante = 1298.95

Datos booleanos (verdadero o falso)

variable_con_dato_verdadero = True
variable_con_dato_falso = False

Repitiendo cadenas de texto

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

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

variable_1 = "a"*3

es igual que:

variable_1 = "aaa"

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

Aprendiendo a Programar en Python en 20 minutos

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

Siguiente capítulo: Métodos y Propiedades en Python

Eugenia Bahit para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo

Síguenos en: Twitter @maestros | Facebook Fan page

155 comentarios

Comentarios

Páginas: [1] 2 »

  1. Ellery

    Gracias por compartir y difundir el aprendizaje de este lenguaje.

    1. Stephanie Falla Aroche

      Ellery, tenemos un reto! y espero que muchos se apunten a este proceso de aprendizaje. Saludos! :)

  2. Muy cool y bien practico, un merecido +1 en plus =)

  3. Luis

    Gracias por el material, justo estoy empezando en python y esto me pareces bastante practico..

  4. DevCH

    Muy buena experiencia, por lo menos eso si jaló bien, pero me pregunto si habrá un ejemplo orientado al web o solo funciona para desktop?

    1. Christian Van Der Henst S.

      @DevCH, obviamente que vamos a tener una parte donde enfoquemos todo lo que es python para el web. Pero vamos paso a paso.

  5. Luis ALB

    Buen inicio esto si me lleva de la mano vamos a seguir esperando el proximo capitulo justamente la semana pasada instale python, pero no sabia donde comenzar gracias por la guia

  6. Muy buen inicio… me parece una mejor practica typear… siempre el código se te queda mas… aprendes mas.. te acostumbras…

    capitulo #1 COMPLETADO…

  7. Rene

    Muy bueno me llamaba harto la atencion este lenguaje…super claro para empezar….esperando la segunda parte xD

  8. Christian Toro

    Este lenguaje me llama mucho la atención, así que espero seguir de cerca este curso.

    Mucho éxito en el proyecto!!!!

  9. ¡Gracias por la guía, estaré siguiéndola! :)

  10. jpgráfico se suma al reto de aprender python. Saludos

  11. Paolo

    LLevaba mucho tiempo buscando una guia para Python!, gracias por compartir! estare siguiendolaaa!

  12. Eugenia Bahit

    Hola a tod@s y bienvenid@s al reto!
    Muchísimas gracias por todos los comentarios!! Y espero que este desafío de aprender Python programando los pueda orientar para ver la programación de una manera profesional. Como comenté al comienzo del capítulo, la idea es programar “a lo grande”, y esto implica el desafío, de aprender a programar “desde el vamos” como profesionales.

    Éxitos en este nuevo reto!!

    Un abrazo,
    Eugenia.

    1. aleja613

      muy bueno
      gracias, seguiré los próximos capítulos

    2. Christian Van Der Henst S.

      @Eugenia, gracias por el esfuerzo. Un fan de la guía que está pendiente del próximo capítulo y que quiere aprender como Panchito.

    3. blh

      hoy encontre estas indicaciones las cuales me parecieron sumamente interesantes apersar de que no tengo nociones pero quiero aprender si me pudiera indicar otra ducumentacion para ampliar o si hay algo mas sobre esto se lo agradeseria quiero ser un programador
      Gracias Blh

    4. Eugenia Bahit

      Hola blh!
      Esta guía se publicará por capítulos todos los martes. Pero si estás con ganas de leer información complementaria, te recomiendo la Guía de Guido Van Rossum, el creador de Python:
      http://pyspanishdoc.sourceforge.net/tut/tut.html (versión en español)

  13. luis angel

    De casualidad no existira algun IDE para trabajar con Python?

    1. Eugenia Bahit

      Hola Luis!
      Existen muchísimos IDEs y muy buenos. Personalmente, he utilizado Eclipse con Pydev (un plugin para Python) y en alguna oportunidad he probado Eric (que me gustó muchísimo más, puesto que a Eclipse no le guardo demasiada simpatía).

      Una lista completa de IDEs puedes encontrarla aquí:
      http://python.org.ar/pyar/IDEs

      Saludos!!!

  14. Estoy encantado con el curso de pythom. Es un desafío; no soy informatico, pero si un niño de 11 puede aprender, a mi me costará mucho mas pero lo intentaré

    1. Eugenia Bahit

      Tranquilo Blas! No es difícil y vas a ver que podés!!!!
      No importa cuanto más o cuanto menos esfuerzo te demande: lo que importa es que lo quieras hacer y que cuando surjan dudas, las consultes.
      Decía mi abuela: “sabio es quien pregunta e ignorante quien calla” ;)
      Pues, éxitos!!!!

  15. iBet7o

    Muy buen ejemplo para iniciar, solo me deja una duda en estas lineas:

    self.empresa = raw_input(‘\tEmpresa: ‘);
    self.cliente = raw_input(‘\tNombre del cliente: ‘);

    El punto y coma al final de la linea es opcional?

    También en vez de escribir “COPIAR Y PEGAR EN EL ARCHIVO PRESUPUESTO.PY” podría ser “ESCRIBIR EN EL ARCHIVO, PRESUPUESTO.PY, EL SIGUIENTE CÓDIGO”.

    Evitemos el copiar y pegar.

    Felicidades y esperamos próximos capítulos!

    1. Eugenia Bahit

      Hola!
      No, definitivamente los punto y como NO VAN.
      Ya están corregidos en el código.

      Gracias por tu comentario!!
      Un abrazo,
      Eugenia

  16. reyvolsam

    Hola amigos de Maestros del Web, gracias por poner a nuestra disposicion este tipo de tutoriales y mas propornernos un reto, la calidad del tutorial es excelente, mis felicitaciones a l@ @utor@, espero que todos los demas capitulos tengan la misma calidad.

    Personalmente yo se programar en PHP, desde que lo aprendi me gusto mucho, pero creo que es bueno aprender otros lenguajes, y si dicen que de igual manera es facil de aprender, pues a empezar se ha dicho….

    Saludos!!!

    1. Eugenia Bahit

      Hola!
      Ante todo, muchas gracias por tu comentario!
      Aprovecho tu mensaje para “poner en alerta” a los programadores PHP.
      Los programadores PHP corremos con una GRAN DESVENTAJA: al no tener PHP reglas de estilo claramente definidas y permitirnos escribir código como se nos de las ganas, eso nos termina “enviciando”.
      Una de las grandes diferencias entre Python y PHP, es que Python es un lenguaje “prolijo” y estricto y los vicios arrastrados de PHP, pueden degenerar nuestros códigos Python o peor aún, hacerlos fallar constantemente.
      Entonces, dos consejos para los programadores PHP:
      1) Sigan al pie de la letra las reglas de estilo de Python cuando programen
      2) APROVECHEN todas las reglas de estilo que Python provee, para cuando programen en PHP. Python es un excelente lenguaje que puede tomarse como ejemplo y eso, es invaluable. Siguiendo el ejemplo de Python para programar en PHP, les aseguro que podrán notar una gran diferencia en sus códigos PHP, haciéndolos más profesionales.
      Un brazo!

    2. reyvolsam

      Tienes muchisima razon, a mi me costo un poquito acostumbrarme a utilizar las reglas de estilo en PHP, pero bueno, es importante hacerlo y como mencionas el codigo se hace mas profesional.

      Saludos!!

  17. @DevCH amigo una consulta… a vos te corrió este modulo… tengo problemas con la declaración de la clase… me dice que no esta definida… @Eugenia Bahit que podra ser??? P.D. ya corregi el nombre en la instanciación… ya que estaba mal.. a la hora de typearlo..

    1. Eugenia Bahit

      Hola!
      Ten en cuenta que Python diferencia mayúsculas de minísculas (es case sensitive). Lo más probable es que exista algún error de tipeo (por ejemplo, que en la definición de la clase diga ModeloDepresupuesto y en la instancia ModeloDePresupuesto). Si revisando la ortografía persiste el error, copia aquí, el error tal cual aparece y el código fuente de tu archivo en http://pastebin.lugmen.org.ar/ y enlázalo aquí para que pueda verlo.

    2. http://pastebin.lugmen.org.ar/6860 @Eugenia Bahit perdon fijate que sigo teniendo el mismo problema… tengo python 2.7 y el error que me tira en consola es:
      File “presupuesto.py”, line 2, in
      class ModeloDePresupuesto:
      File “presupuesto.py”, line 68, in ModeloDePresupuesto
      presupuesto = ModeloDePresupuesto()
      NameError: name ‘ModeloDePresupuesto’ is not defined

      que podre haber echo mal…??? el problema es que no reconoce la declaración de la clase creo.

    3. Eugenia Bahit

      Ay! Corazón! Estoy viendo tu código. Fijate que hay algunos errores:

      1) El fundamental por el cual te falla:
      # Instanciar la clase
      presupuesto = ModeloDePresupuesto()
      Al estar identada la instancia a la clase, la está escribiendo DENTRO de la clase.
      So… lo que tienes que hacer es QUITAR los espacios de la identación y que quede así:
      # Instanciar la clase
      presupuesto = ModeloDePresupuesto()
      ¿Lo ves?

      2) Luego te está faltando el método set_datos_basicos() (no falla ahora, pero fallará luego si no lo agregas)

      SUGERENCIA 1: “copipaste” completo del código, again! :)) Cuéntame que tal resulta ¿si?

      SUGERENCIA 2: (esta va para todos) Lo veremos más adelante, pero YA vayan sabiéndolo:
      La identación en Python es de 4 espacios en blanco (no tabulados, sino ESPACIOS).

    4. Eugenia Bahit

      Bueno, los comentarios me “comieron” los espacios. Mira en el pastebin que allí se nota la diferencia en lo que corregí de los espacios.

    5. Muchisimas Gracias @Eugenia, muy fina por tu pronta respuesta… no sabia esto de la identación. Exacto esto era lo que probocaba el error…

      Nos vemos el martes… :)

  18. Hola Eugenia! Gracias por compartir tu conocimiento!
    (Tengo instalado Python 2.7.2 para Win)
    Pregunta: Cuando completo con datos el ejercicio que vemos en este ejemplo, al finalizar la ventana de la consola se cierra sola y no muestra resultado alguno. ¿Qué puede ser?

    Nuevamente Gracias!

    1. Ya está solucionado, paso que la ejecución era demasiado rápido para poder verlo. Ejemplo funciona perfecto! Gracias y Hasta la siguiente parte de la guía. Éxitos!

    2. Eugenia Bahit

      Hola Andrés!
      Gracias por tu comentario!
      A pesar de que lo hayas solucionado, me dejas pensando ¿en Windows se cierra la consola una vez que el script finaliza? Pues, no lo sabía (sinceramente, nunca utilicé Windows para programar en Python, así que asumo mi absoluta ignorancia al respecto). Investigaré a ver que herramientas existen para poder ejecutar un módulo Python en Windows, en una consola con menos apuro!
      Lo investigo y luego posteo nuevamente.
      Un abrazo!

    3. Efectivamente, la consola se cierra al finalizar el script. Lo solucione agregando “raw_input()” al final del codigo, de esa manera el resultado se ve hasta que pulse enter. Saludos.

    4. Eugenia Bahit

      Una solución ingeniosa! :)
      De todas maneras, hay que buscar una alternativa que no implique poner parches en el código. Prometo en esta semana, buscar alguna herramienta que evite que se cierre la consola en Windows.

    5. Eugenia Bahit

      Perdón el doble post, pero lo que podés hacer y pueden hacer todos los usuarios Windows, mientras sigo buscando alguna herramienta para ejecutar módulos Python en Windows sin que cierre la consola, es lo siguiente:
      cuando ejecuten el módulo por consola, escriban:
      python -i presupuesto.py

      Es algo incómodo pero útil. Al colocar -i tras finalizar la ejecución del script, pasa a modo interactivo. Eso (si funciona en Windows) debería mantener la consola abierta.

      Otra alternativa, sería ejecutar directamente el modo interactivo (escribir python en la terminal y darle enter) y una vez que aparezca >>> allí escribir import presupuesto (esto viene en capítulos posteriores pero bueno, es una emergencia) :D

      Andrés ¿lo pruebas y me cuentas como fue? Y please, elimina el parche del raw_input() :D

    6. Gracias Eugenia, paso esto: cuando escribo Python -i presupuesto.py me devuelve SyntaxError: invalid syntax.
      La solución que encontré ahora es utilizar el IDLE de Python, el código corre
      Bien y no se cierra al terminar el scrip. Con esto creo que ya estoy listo para lo que sigue, no? :) Disculpas por usar win y complicar todo jaja ;)

    7. Eugenia Bahit

      Good!!!!! Excelente noticia!! Y nuevamente me desasnas con Windows. Pues TAMPOCO sabía que el comando -i no iba en Windows (y no se me ocurrió fijarme antes de contestar! :D).
      Me alegro que hayas encontrado una solución. Bien ahí! Eso sí que es tener iniciativa y ser resolutivo :)

  19. Pablo

    Excelente propuesta!. Se extendera a djanjo? Saludos y exitos

    1. Eugenia Bahit

      Hola Pablo! Gracias por tu comentario :)
      En principio, la guía está enfocada nétamente a Python (el lenguaje). La idea es aprender y dominar bien el lenguaje, para luego implementarlo con frameworks para Web como Django o Web2Py o aplicándolo con interfaces gráficas como Wx, QT (KDE), GTK (Gnome), etc.
      Saludos!!

  20. Dennis

    Hace 3 años estuve buscando información sobre Python, !¡ Excelente¡! muchos exitos

    1. Eugenia Bahit

      Gracias Dennis!! Y éxitos para ti también :))

  21. Roberto Lemos

    He copiado el código y al ejecutarlo, me aparece error en la línea 59
    print txt

    1. daluvi

      Roberto el problema es que en python3 se escribe así: print(txt).
      esta bien escrito para la version python2

  22. daluvi

    Eugenia Bahit, me encataria que actualizes y nos enseñes en la version 3.

    gracias :)

    1. Eugenia Bahit

      Hola!
      Te cuento que al concluir la guía, como respondí en otro de los post, habrá un tiempo dedicado en exclusiva a Python 3. Una vez que sabes programar en Python, pasar a la versión 3.x es tan simple como leer el log de cambios (que es muy breve) :))
      Sucede que el motivo por el cual estamos trabajando con Python 2.x es nétamente por cuestiones de compatibilidad (que tal vez, en Windows no generen problemas ya que se instala Python para programar – generalmente – pero no porque algún otro software lo necesite). Esto en Linux y Mac, es diferente, ya que paquetes que dependen de Python 2.x pueden romper si se actualiza a Python 3. No es tan simple actualizar.
      Un abrazo!

  23. Roberto Lemos

    Hay bastante diferencia en cuanto a sintaxis entre estas 2 versiones?

    Me salen una serie de errores,
    ‘raw input’ is not defined

    1. Eugenia Bahit

      Hola Roberto!
      Existen algunas diferencias significativas entre Python 2.x y Python 3.x.
      Puedes leerlas en la documentación oficial al respecto en http://docs.python.org/release/3.0.1/whatsnew/3.0.html
      Allí verás que raw_input() en Python 3 se renombró por input()

  24. hola eugenia, se ve interesante este desafio.
    seguiré estas guias sobre python y lo aprenderé contiho =), una pregunta tu estas usando la version python 2.x o 3.x? para no tener problemas con los codigos.
    Saludos y Gracias.

    1. Eugenia Bahit

      Hola!
      Es importante aclarar (debido a los últimos comentarios) que por cuestiones de compatibilidad y para evitar romper paquetes de nuestro S.O., que en toda la guía se trabajará con Python 2.5 o superior pero NO con Python 3. Al final de la guía me tomaré tiempo para explicarles las principales diferencias entre versiones y contarles sobre los posible problemas que puedan surgir al actualizar (claro que siempre se puede hacer un downgrade).
      Por el momento RECOMIENDO utilizar Python 2.5x o 2.6x (o en Linux o Mac, el que esté instalado por defecto) para prevenir problemas de compatibilidad con otros software/paquetes instalados.
      Un abrazo!

  25. dcreate

    Excelente, estare esperando con ansia el siguiente capitulo

  26. Antonio Pantoja

    Tiene muy buena pinta el Articulo !!
    Mis Felicitaciones eh.

  27. THE_DUKEE

    excelente articulo muy detallado para los que no conocemos phyton
    es buena hora de empezar a indagar en el parese ser muy eficiente sencillo
    y una buena ventaja que necesita pocos codigos
    ojala puedas poner mas tutoriales muchas felicitaciones

  28. kiai

    kiai

    muy bueno el tuto

    les recomiendo aptana como ide ;)

    http://aptana.com/

  29. Excelente muy buen comienzo al grano por favor continua realizando este gran trabajo para lso que empezamos a interesarnos en Python

  30. Alex

    Aqui se podrá encontrar el siguiente capitulo??

    1. Eugenia Bahit

      Hola Alex!
      Si, el segundo capítulo podrás verlo el martes siguiente aquí mismo.
      Puedes también ver el anuncio de cuando se haya publicado, a través de twitter:
      http://twitter.com/maestros <– aquí te enteras más rápido
      http://twitter.com/eugeniabahit <– esta es mi cuenta, yo me entero luego que publica @maestros ;)

  31. Me apunto!! Estaba aprendiendo las bases de python en otra web, el método está bien pero este también pinta bueno, asi que estaré en ambos sitios!!

    Gracias por compartir, como siempre Maestros!

  32. pense que se me iva a complicar , ahora solo espero el sig capitulo ^^

  33. zeler

    Milll gracias, hace mucho que queria un buen maestro Jedi en Python.

  34. Josisas

    Excelente, gracias por el buen aporte!

  35. Josias

    Ahora todo es mas claro y toca esperar el siguiente capitulo de la serie!

  36. Cande

    Interesante la introducción a Python, pero, porque no enseñar la versión 3 si ya esta disponible y estable?. Ademas, si mencionan el constructor explícitamente en en la clase, no vi ningún destructor, ni el comentario del porque?.
    Pero se los complemento, en Python los objetos son destruidos al salir de su ámbito, no se requiere un destructor explícito, Python se encarga de eso ;)

    1. Eugenia Bahit

      Hola Cande!
      Como comenté en post anteriores, hablaré sobre Python 3 al final de la guía, por dos motivos:
      .
      1) Mientras que los usuario que trabajan con Windows simplemente instalan una versión de Python que quieran y ya, en sistemas operativos más robustos como los basados en Linux, Python -suele venir- instalado por defecto ya que una gran parte de los paquetes, tienen dependencias en él. Actualizar a Python 3 en estos casos, no es tan sencillo, ya que dichos paquetes que tienen esta dependencia específica es con respecto a la versión Python 2.x. Por lo tanto, la actualización puede romper esas dependencias, y el trabajo que habría que hacer para arreglarlas, incluiría una guía aparte sobre Linux (que estaría muy a gusto haciéndola, pero el objetivo ahora es aprender Python)
      .
      2) Un lenguaje de programación tan robusto, estable y potente como Python, no se aprende “por versiones”. Se aprende por “conceptos”. Un programador que tiene la capacidad de programar en un lenguaje como Python, una vez que conoce el lenguaje, tiene la capacidad autónoma de leer un changelog, comprender y asimilar los cambios que el lenguaje le propone en nuevas versiones. Y para eso, también te prepara esta guía.
      .
      Un abrazo!

  37. exceleten informacion a la espera de mas :) me quiero seguir aprendiendo PYTHON

  38. cristian_cena

    Que bien los maestrosdelweb!! cuantas guías, y ahora también python!! gracias, quedo pendiente a esta guía. Gracias eugenia.

  39. Dario

    Hola, gracias por el curso, es muy didactico e interesante. He intentado reproducir el ejemplo y me sale el error

    >> python presupuesto.py
    File “”, line 1
    python presupuesto.py
    ^
    SyntaxError: invalid syntax

    Busque en diferenes sitios,. y hace mencion a un error en esa linea (1)… pero desconozco el error… si podes tirarme alguna punta te lo agradeceria, saludos, Dario.

  40. Dario

    Perdon por las molestias !!!, Que bruto Soy !, estaba ejecutando desde el prompt de python en lugar del cmd.exe
    Solucionado….. saludos..

  41. Gracias por el aporte jeje, a aprender python se ha dicho…

  42. Cande

    Excelente, quedo en espera de nuevos posts. Como propuesta me gustaria ver algo de interfaces con QT.

  43. hola estoy interesado en programar python, el caso es que cuando quiero compilar el archivo me sale un error:
    presupuesto.py
    File “” , line 1
    Sintaxerror: invalid sintax
    o como se corre el archivo. yo lo hago por la linea de comando Python(command line).
    tambien lo intente por el ms-dos pero no se puede ejecutar.
    alguna sugerencia o tip lo que sea.
    gracias .
    un saludo afectuoso me gusta su pagina.

    1. Eugenia Bahit

      Hola Jorge! ¿cómo estás haciendo exactamente para ejecutarlo?

      Debes abrir la consola, y escribir en la misma línea:
      python presupuesto.py

      Si cuando accedes a la consola, ves este símbolo: >>> , ese es el interprete de Python, desde ahí no vas a poder ejecutarlo a no ser que hagas un import.

      En Windows, para abrir la terminal vas a Inicio > Ejecutar y allí escribes cmd

      Una vez allí, debes navegar hasta el directorio donde guardaste el archivo. Para navegar utilizas el comando cd, por ejemplo, cuando abras la consola verás: C:>
      Allí escribes:
      cd nombre_de_la_carpeta
      Si necesitas listar los diretorios dentro de esa carpeta, escribes dir (o sino dir /p para que los liste pausadamente)
      Cuando llegas a la carpeta donde está el archivo, recién ahí escribes:
      python presupuesto.py

  44. Manuel Arana

    Hola que tal.!! Excelente material.!! ehmmm soy novato y tengo una duda algo mmmm tonta.!! eeeee como abro la consolola o terminal en windows.¿? muchas gracias por la respuesta.!! :D

    1. Eugenia Bahit

      Hola Manuel! Hey, no existen las preguntas tontas!! Lo único poco inteligente es no saber y no animarse a preguntar ;)
      Un par de post más arriba, respondí algo similar (hago copy & paste) :D

      En Windows, para abrir la terminal vas a Inicio > Ejecutar y allí escribes cmd

      Una vez allí, debes navegar hasta el directorio donde guardaste el archivo. Para navegar utilizas el comando cd, por ejemplo, cuando abras la consola verás: C:>
      Allí escribes:
      cd nombre_de_la_carpeta
      Si necesitas listar los diretorios dentro de esa carpeta, escribes dir (o sino dir /p para que los liste pausadamente)
      Cuando llegas a la carpeta donde está el archivo, recién ahí escribes:
      python presupuesto.py

      Saludos!!

  45. Saludos Eugenia, excelente material. Copié el código como lo tienes acá en el sitio y me sale este error:


    ./test.py: line 2: class: command not found
    ./test.py: line 4: titulo: command not found
    ./test.py: line 5: encabezado_nombre: command not found
    ./test.py: line 6: encabezado_web: command not found
    ./test.py: line 7: encabezado_email: command not found
    ./test.py: line 10: alicuota_iva: command not found
    ./test.py: line 13: divline: command not found
    ./test.py: line 16: syntax error near unexpected token `('
    ./test.py: line 16: ` def set_cliente(self):'

    ¿Qué puedo tener mal? Gracias

    1. Me respondo yo mismo, es que no estaba ejecutando el script como debía. Lo estaba haciendo así:

      ./script.py

      cuando en realidad es así:

      python script.py

      Gracias ^^

  46. awelomustaine

    hola a todos, pues comenzando a ver tus lecciones, lo hice en gedit, pero tengo una duda enorme, a la hora de ejecutar el último código que me marcas, me dice que SyntaxError: invalid syntax
    [mark@bigmama ~]$ python presupuesto.py 444
    File “presupuesto.py”, line 59
    print txt
    ^
    SyntaxError: invalid syntax

    Y la verdad soy muy novato en esto de la programación, apenas sé configurar mi .sysinit en el archlinux para tener arranque gráfico, pero quiero aprender chido a programar, saludos :)

    1. Eugenia Bahit

      Hola!! Prueba descargarte el código desde Launchpad.
      Ejecuta ese código y fíjate si falla.
      Si no falla, habría algún error al momento de copiar el código.
      Si falla, verifica que versión de Python tienes instalada. Para saberlo, en la terminal escribe python, dale enter y vuelve a postear comentando que versión tienes.

  47. Gissela Peralta
    Gissela Peralta

    Al fin me puse a seguir el curso! Cuando llegué a “Si has llegado hasta acá…No te pierdas el segundo capítulo…” no podía creer lo rápido que pasó. Muy dinámico, preciso y conciso. No sé casi nada de programación, simplemente algunos “conceptos básicos” pero espero que con esta guia pueda comenzar mis primeros pasos en el mundo del código. Gracias! (me voy al 2do capitulo!)

    1. Eugenia Bahit

      Hola Gissela!
      Qué hayas podido completar este primer capítulo sin inconvenientes ¡Es muy buena señal! ;)
      Esta guía justamente está pensada para personas que no cuenten con conocimientos de programación (o con unos pocos), y créeme que Python es la mejor forma de iniciarse. No solo por lo sencillo que resulta aprenderlo, sino porque Python, tienes la posibilidad de aprender a programar bien, ya que a diferencia de otros lenguajes, este lenguaje “te guía” para escribir código con buenas prácticas y te ayuda a no adquirir malas costumbres :)
      ¡Éxitos con el segundo capítulo!!
      Un abrazo!
      Eugenia

  48. ALX

    Exelente iniciativa… ya acepté el reto… y estoy en ello… espero terminar programando en phyton despues de estas 15 horas :P…

    saludos

    1. Eugenia Bahit

      Bien ALX! Siguiendo cada capítulo detenidamente, y sobre todo, consultando las dudas, programar en Python, será un hecho!
      Éxitos!! :)

  49. Justamente hace poco quería probar este lenguaje que eh visto de el muy poco pero a sus comentarios en muchos sitios, se nota que es un muy buen lenguaje. YO ACEPTO EL RETO.

    Esperemos grandes programadores terminando estas 15 horas de aprendizaje y claro que sigan practicando que ello conlleva a un DESARROLLADOR NATO. Eso si sobre todo dar las gracias por Eugenia Bahit
    y Maestros del Web por esta ayuda :).

    Saludos a todos.

  50. StuxNet

    hey!!!! espero con ansias los demás capítulos, ahora voy por el segundo!!!
    Saludos!!!!!!!!!!

  51. otto

    Después de afrontar algunos problemitas, ya finalice el capitulo 1.

    Y si definitivamente la identación es de 4 ESPACIOS, no de 1 tabulación.

    Muy buen material.

    Saludos

  52. Juan Pablo

    hola!! Aprovechando que en la consultora donde estoy mermó un poco el trabajo.. -programo -o intento programar :-P – en ABAP, empecé a investigar sobre otros lenguajes de programación que me permitan largarme solo, y hace muchiosimo tiempo que escucho de Phyton, asi que siguiendo links llegue a maestrosdelweb, y de allí a aquí.. y esta misma noche veré de bajar e instalarme en mi windows los programas necesarios.. ok? Espero poder engancharme desde hoy.. por mas que el curso ya ha comenzado..

    pregunta adicional.. de ojetos no tengo idea.. igual puedo seguir el curso?

    gracias!! Saludos!

    1. Eugenia Bahit

      Hola Juan Pablo!
      Por más que no tengas nociones de programación orientada a objetos, puedes seguir la guía sin problemas, pues la idea, es introducir nociones de la POO al mismo tiempo que se aprende Python. Por ello, ya desde el primer capítulo (este mismo) se va explicando de forma “fácil” todo lo relacionado con objetos.
      Igualmente, cualquier duda CONSÚLTALA! No te quedes con dudas ;)
      Éxitos!!

  53. Leo Rdz

    Muchas gracias por tu tiempo y dedicacion

    He tenido algunos problemas por que tengo windows, soy profesor de colegio y pues en colegio hay windows ni modo…

    El ejemplo no me corrio desde el cmd , pero ya solcuione usando IDLE (Python GUI)

    1. Eugenia Bahit

      Excelente Leo que lo hayas podido solucionar! :)
      Y qué pena que en el colegio utilicen software privativo :(

  54. Galo Galarza Acosta

    GRACIAS por compartir tus conocimientos, eres un ejemplo a seguir, “El gallo cantaba al alba y yo canto al amanecer…el cantaba porque
    sabía,yo canto por aprender… Por vos levanto la copa amigo gallo”

  55. Ismael

    Hola Eugenia!

    Recién vengo enterando de esta guía y me parece una grandisima ayuda para gente como yo, que le interesa aprender algo nuevo pero que no tiene la experiencia como muchos otros desarrolladores, a raíz de esto me quedan algunas dudas pues lo poco que he hecho como desarrollador se enfoca a NET y Windows, será acaso que se me complique más de la cuenta aprender Phyton? si es así, que consideras debería leer antes de adentrarme a este lenguaje?

    Por lo pronto, estoy intentando seguir cabalmente cada paso de tu guía, ya te contaré que pasa…

    Saludos y en horabuena por compartir el conocimiento!

    1. Eugenia Bahit

      Hola Ismael!!! Y Bienevnido a Python!! :D
      Con respecto a tu consulta voy a serte 100% honesta: lo único que necesitas es ser objetivo y evitar tenerle miedo a lo que no esté tan relacionado con Windows.
      Python es un lenguaje sencillo. Es simple y la vez sumamente robusto.
      En cuanto a las tecnologías .Net, me ha tocado alguna vez, realizar un pequeñísimo mantenimiento correctivo sobre C#, y algunos cuantos desarrollos en VB.Net y ASP.Net (más en VB que en ASP). Son tecnologías que seguramente pueden considerarse robustas, pero como lenguaje en sí, se diferencian de Python (o de C, por ejemplo), en un punto fundamental: la prolijidad y la coherencia.
      Haciendo un paralelismo (algo sarcástico, sí, pero no lo pensemos desde el sarcasmo sino desde la metáfora), las tecnologías .Net suelen ser algo “bipolares”: puedes lograr desarrollos espectaculares, pero ante el primer problema, se enfrenterán a una depresión inigualable. Van desde el “Wow! que buen software” al “Oh! Por Dios, quiero morir!” muy fácilmente. Y la única razón tangible es que son lenguajes desprolijos.
      Pues, lo único que hay que tener en cuenta para programar en Python, es que demanda ser PROLIJO (los “malos vicios” arrastrados de otros lenguajes, solo se olvidan mientras se programa Python y ya es suficiente).
      La mejor lectura para perder el miedo:
      Guía de estilos para Python (PEP 8): http://www.python.org/dev/peps/pep-0008/
      y El Zen de Python (PEP 20): http://www.python.org/dev/peps/pep-0020/
      Creeme que VAS A PODER y que no te será difícil ;)
      Y, lo que digo siempre: si tienes dudas, consúltalas. Nunca te quedes con dudas ;)
      Bienvenido!!

  56. Julio

    Hola que tal!

    Recien estoy empezando a ver como es esto de python, he leido este articulo y logre comprenderlo casi todo =).

    Solo me quedo una inquietud, si los comentarios en python empiezan con “#”, como es que python entiende lo siguiente si se supone deberia ser un comentario:
    # -*- coding: utf-8 -*-

    Saludos y gracias por crear este tipo de entradas ^__^!
    Julio…

  57. Julio

    Disculpen, tambien aniado (no tengo la enie en mi teclado xD) que al inicio del codigo falta indicar lo siguiente:
    #!/usr/bin/python

    Asi me funciono utilizando GNU/Linux, no se si lo mismo aplica para windows y mac os.

    Saludos.
    #Julio…

Los comentarios de este post están cerrados. Si quieres seguir la discusión, debatir, criticar, sugerir o expandir el tema te invitamos a hacerlo en tu propio blog, en twitter o donde puedas publicar. No olvides enlazar a este post para que sigamos la conversación y se genere un trackback.

Python Si tienes dudas visita nuestro Foro Python en Foros del web