Programación para Newbies VI: Hola mundo

Bueno, luego de una soberana lata, por fin nos vamos a entrar en la programación. Finalmente entre los muchos lenguajes de programación existentes me pareció que el mejor para comenzar es Python.

¿Por qué Python?

  • Lenguaje de alto nivel interpretado
  • Sintaxis sencilla (prácticamente pseudocódigo)
  • Ampliamente disponible
  • Libre
  • Multiplataforma
  • Orientado a objetos

En fin, como ven las bondades son numerosas…

Para programar con este lenguaje basta un editor de texto plano (nada de MS Word, u OpenOffice) o el intérprete, en el primer caso es suficiente, pero de todas formas un IDE puede facilitar bastante las cosas. El que siempre es recomendado es PyDev, un plugin para Eclipse, pero la verdad es que como les comentaba en los artículos anteriores no me gusta mucho utilizar aplicaciones basadas en Java. De todas formas en Ubuntu el paquete se llama eclipse-pydev.

Hay otro llamado Komodo, que es de pago (bastante profesional por cierto) y Komodo Edit que es la version gratuita y libre. Otro de pago al parecer muy bueno sería Wing IDE que según leía en Python para Todos, con suerte podrían darte una licencia profesional si lo utilizas para desarrollar software libre no comercial.

Yo voy a utilizar Geany (geany), porque cumple perfectamente mis expectativas, tiene coloreado de sintaxis, autocompletado, edición en pestañas y abajo tiene una pequeña terminal donde se pueden ejecutar los programas que creamos. Por otra parte es muy liviano, rápido y ha demostrado ser bastante estable.

Respecto al intérprete, puedes instalar iPython (ipython) que viene siendo una versión mejorada del intérprete común y silvestre. Al menos en el comienzo creo que es más lo que enreda por ser más avanzado, así que no lo utilizaré.

Si te sientes incómodo utilizando la línea de comandos, también podría recomendarte IDLE un IDE de Python que es un intérprete, a medio camino entre el «a secas» y lo estrambótico de iPython.

Para este tutorial, utilizaré IDLE, pero con cualquiera deberías andar bien.

¡Hola mundo!

Como es costumbre en esto de la programación, para comenzar vamos a realizar nuestro primer programa que imprimirá «Hola Mundo!» por la pantalla. Para entonces vamos a arrancar el intérprete (o IDLE, lo mismo)…

pablo@xubuntu:~$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

La última línea (>>>) es el prompt, es decir que python está esperando que tipiemos alguna orden.

>>> hola
Traceback (most recent call last):
    File "", line 1, in
NameError: name 'hola' is not defined
>>>

Como ves, Python no reconoció el comando «hola», vamos a probar con otro…

>>> print "¡Hola mundo!"
¡Hola mundo!
>>>

¡Felicitaciones! Tu primer programa en Python :D.

Para salir del intérprete puedes hacerlo de tres formas: exit(), quit() o con <Ctrl + D> (comando de fin de línea; EOF)

La otra forma que puedes programar es escribir lo anterior en un archivo de texto y guardándolo con extensión .py:

#!/usr/bin/env python
# coding: latin-1

print "¡Hola mundo!"

La primera línea es un comando Unix que se conoce como shebang, hashbang o sharpbang. Su función es indicar en que ruta buscar el intérprete, si estuviera programando en bash, tendría que cambiar «python» por «bash» o el que corresponda. Habitualmente el intérprete de Python se encuentra en /usr/bin/python, pero como por desgracia eso no está estandarizado, preferiría asegurarme de que lo encontrase si acaso estuviera en una ubicación poco habitual. Para eso utilice el comando env que se encarga de ubicar al intérprete, así corro menos riesgos que no lo encuentre.

La línea siguiente es para que Python entienda más caracteres: mira que pasa si ejecutas sin la segunda línea, tirará un error porque el carácter ¡ no es ASCII. En fin, si quieres utilizar caracteres presentes en el castellano y no sólo los provenientes del inglés (básicamente ASCII) agrégalo, sino puedes omitirlo.

Por supuesto, además de añadir esta línea debemos darle permiso de ejecución:

~$ chmod +x hola.py

Luego ya podemos ejecutarlo con:

~$ ./hola.py

En ambos casos obtendremos los mismos resultados, con el intérprete tenemos la ventaja que no necesitamos darle permiso de ejecución ni estar guardando el archivo, por lo que utilizaré este.

Si están familiarizados con algún otro lenguaje, notarán que no es necesario agregar el punto y coma al final de cada línea ;, puedes agregarlo si quieres, pero no tendrá ningún efecto. Si agregas código después, Python lo considerará como un salto de línea, pero la verdad es que no es muy buena idea porque sacrificas algo de legibilidad.

Ingredientes e instrucciones

¿Recuerdas la receta que puse en un par de partes atrás?

  1. Mezclar azúcar y mantequilla hasta que quede una sustancia cremosa
  2. Agregar 3 huevos
  3. Mezclar y agregar 2 tazas de harina
  4. Cocinar en un horno a llama baja por 45 minutos

Bueno, nuestra receta tiene ingredientes ¿verdad?, huevos y harina (por ejemplo) y también presenta instrucciones (statements), como mezclar y cocinar. Un programa tiene ambas cosas, éstos serán los temas les hablaré en las siguientes partes (comenzando con los ingredientes).

Nota: Lamento lo corta, poco interesante y como si fuera poco – la tardanza para escribir esta parte, pero me costó mucho decidirme y la verdad es que tuve que rehacer varias veces porque no sabía cuál de las siguientes dos partes poner primero. Lo bueno es que quedé con todos los artículos a medio hacer, así que voy a poder desarrollarlos más rápido.

16 comentarios en “Programación para Newbies VI: Hola mundo

  1. Holap:

    Está genial el tutorial.
    Instalé «IDLE» e hice todo tal cual lo enseñas, pero no me funciona el programa «hola.py»…

    …al escribir en la consola «./hola.py», me dice (ya le di los permisos):
    : No existe el fichero ó directorio

    Qué puedo hacer?

    Saludooos :(

    P.D: Geany es extraordinario! xD

    Me gusta

  2. excelente eleccion.

    Antes que nada voy a recomendar el ide que uso actualmente y que me parece que es muy bueno, se llama editra, escrita en python y wxPython, de hecho si tienes instalado o instalas wxPython ya estara disponible para utilizarse(aunque en la web del programa esta una version mas nueva).

    Para el problema de Carlos Ruiz, creo que tiene que ver los con el fin de linea que utiliza el ide, porque aveces que escribo codigo en windows(\r\n) y luego quiero ejecutarlo en linux(\n) me sale ese error, una opcion es ejecutarlo asi: «python hola.py» y la otra es abrir el archivo hola.py con gedit o kwrite copiar el codigo, pegarlo en un archivo nuevo y guardarlo con la extencion .py luego le das permisos de ejecucion y lo ejecutas.

    saludos

    Me gusta

  3. Para proyectos relativamente pequeños Geany gana por goleada como IDE. Rápido, ligero y con soporte para decenas de lenguajes, además de varias características extra.

    Ahora, si van a usar Java, Netbeans + Javadoc FTW. No hay más.

    P.D.: Viendo la buena acogida de esta serie, si hay una buena cantidad de interesados podría ir publicando en paralelo con PaBLoX una serie de programación en C. Que hable el pueblo, por favor :).

    Me gusta

    • La verdad, tu idea del PostData me parece excelente. Todavía me falta un año para la carrera, pero pienso estudiar una ingeniería en computación (nombre horrible :P) y me dijeron que para iniciarme lo mejor sería aprender un poco de la sintaxis básica de la programación en C, C++, y otros lenguajes similares; por lo que veo con más que buenos ojos tu propuesta de postear en paralelo un manual. Este me está gustanto bastante, de hecho abandoné eso de programar en python porque no salía más que Código ASCII… y ahora veo qué línea (la que yo usaba no me daba el resultado, sólo salían interrogación) es la correcta. Un saludo.

      Me gusta

  4. Excelentes artículos, en mi feed los di por leídos pero apenas hoy me pasé de verdad para verlos detenidamente. Muy ilustrativos y amenos, y realmente bien escritos (un par de fallas de ortografía, como todos :P). Me parece muy positivo lo que haces y veré cómo continúa esta saga. Un saludo.

    Me gusta

  5. Perfecto, acabo de probar Geany pero la verdad es que no me gustó mucho, estoy acostumbrado a usar Scribes o Gedit, soy un hombre de constumbres pero que le vamos a hacer xDD
    Si quieren yo puedo aportar con algo sobre Fortran90, se que muy específica la finalidad del lenguaje este, pero yo me inicié con él y puedo hacer algún que otro aporte.
    Salu2

    Me gusta

  6. Carlos Ruiz: Es extraño… y quizá es sumamente obvio, pero ¿estás seguro de que estás en el mismo directorio?

    mirivagu: Gracias por el dato. Hace justamente un par de días leía que los 3 grandes SO (Windows, *nix y OS X) todos tienen distintos caracteres para el fin de línea… ¿tanto costará estandarizarlo?

    Lycus HackerEmo: Estoy bien enamorado de Geany, pero le voy a echar una mirada cuando tenga tiempo :).

    Felipe Lucero: Considerando los comentarios, diría que hay aún mucha más gente interesada. Creo que sería bueno que mantuviera un poco el estilo de estos y que fuera realmente un paralelo :D. Ahí nos tenemos que poner de acuerdo ;).

    w_kats: Que bueno que algo te aporté y que te hayan gustado estos artículos.

    pablito: Muchas gracias, tus palabras pasan a todo el equipo :).

    Felipe Portales: Quizá scite es más de tu agrado ;). Respecto a lo de Fortran90, me parecería muy bueno… tenemos que buscar la manera de hacerlo :).

    Me gusta

  7. Excelente!!, no he probado el ejemplo, antes ya lo había hecho, espero igual me funcione, ahora. Lo del interprete Python que estas usando, entendi que es el que viene por default en Ubuntu, y bueno espero que con Geany funcione. Por ahora muy entendible hasta ahora.

    Saludos!!
    JM.

    Me gusta

  8. Información Bitacoras.com…

    Valora en Bitacoras.com: Bueno, luego de una soberana lata, por fin nos vamos a entrar en la programación. Finalmente entre los muchos lenguajes de programación existentes me pareció que el mejor para comenzar es Python. ¿Por qué Python? Lenguaje de …..

    Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.