Python – Capítulo 8: La estructura "while"

Objetivo: presentar la estructura de control while en Python para la repetición de un bloque de instrucciones en tanto y cuanto se cumpla determinada condición.

Supongamos que tenemos un determinado conjunto de instrucciones que queremos repetir en bucle siempre que se cumpla cierta condición. Python resuelve esto a través de la estructura while (que significa mientras, en inglés).

La filosofía es sencilla: mientras se cumpla una condición dada, repite un conjunto de instrucciones.


while condición:
    instrucción 1
    instrucción 2
    instrucción n

Recuerda que la forma que tiene Python para delimitar los bloques de instrucciones es a través de su indentación.

¿Cómo funciona el bucle while?

Se evalua la condición al comienzo del bucle. Si es verdadera, True, el conjunto completo de instrucciones indentadas se ejecuta. Una vez concluido, volvemos arriba y reevaluamos nuevamente la condición. Si sigue siendo cierta, repetimos de nuevo el bucle.

Y así sucesivamente. En el momento en el que la evaluación al comienzo sea falsa, False, el bucle dejará de ejecutarse y el programa saltará a la siguiente instrucción fuera de él.

Recuerda el programa del artículo anterior:


valor = input('Introduce un número del 1 al 6: ')
if int(valor) == 1:
    print('El dado rueda..., ha salido el UNO')
elif int(valor) == 2:
    print('La suerte está echada..., ha salido el DOS')
elif int(valor) == 3:
    print('El dado nos muestra... un TRES')
elif int(valor) == 4:
    print('Increíble pero cierto... ha salido un CUATRO')
elif int(valor) == 5:
    print('Si esto fuera el parchís sacarías ficha. Ha salido el CINCO')
elif int(valor) == 6:
    print('Enhorabuena, has sacado el valor más alto del dado, el SEIS')
else:
    print('Lo siento, el dado no puede devolver ese valor')

Se nos requería la introducción de un número y, si este correspondía a una cara del dado (valor entre uno y seis), nos mostraba su valor. En el caso de que el número no estuviese en el rango adecuado, nos instaba a que volviéramos a intentarlo y el programa concluía. Pero volver a intentarlo implicaba volver a lanzar el programa de nuevo.

El programa siguiente lo hemos mejorado para que no haya que volver a ejecutarlo en el caso de que no se introduzca un valor adecuado:


valor = int(input('Introduce un número del 1 al 6: '))
while valor<1 or valor>6:
    print("Por favor, el número ha de ser un número entre el uno y el seis.")
    valor = int(input('Introduce un número del 1 al 6: '))
if valor == 1:
    print('El dado rueda..., ha salido el UNO')
elif valor == 2:
    print('La suerte está echada..., ha salido el DOS')
elif valor == 3:
    print('El dado nos muestra... un TRES')
elif valor == 4:
    print('Increíble pero cierto... ha salido un CUATRO')
elif valor == 5:
    print('Si esto fuera el parchís sacarías ficha. Ha salido el CINCO')
elif valor == 6:
    print('Enhorabuena, has sacado el valor más alto del dado, el SEIS')

Observemos el bucle while, justo desde la línea anterior a él:


valor = int(input('Introduce un número del 1 al 6: '))
while valor<1 or valor>6:
    print("Por favor, el número ha de ser un número entre el uno y el seis.")
    valor = int(input('Introduce un número del 1 al 6: '))

Justo antes del while le pedimos al usuario que introduzca el valor, que inmediatamente después cotejaremos.


valor = int(input('Introduce un número del 1 al 6: '))

Observa, como diferencia respecto al programa anterior, que esta vez hemos utilizado la función int() directamente en la captura de input(), de modo que la variable valor ya contiene un entero y no será necesaria su posterior conversión en cada elif.

Llegamos al fin a la condición del bucle while:

while valor<1 or valor>6:

Queremos que, si el valor no se corresponde con una tirada del dado, nos lo diga y, además, vuelva a ofrecernos el mensaje incitándonos a introducir otro diferente, labor de la que se ocuparán las dos instrucciones del bloque.

Si el número entero introducido no está en el rango entre uno y seis significa que, o bien es menor que uno, o bien es mayor que seis. Eso es lo que muestra la condición. El operador lógico or devuelve True cuando cualquiera de los dos operandos que están a su lado es verdadero. El bucle se repetirá continuamente hasta que introduzcamos un valor adecuado. Sólo entonces la condición será False y podremos seguir con las instrucciones if posteriores.

Nada más por hoy. Dispones de una herramienta poderosa para el control de flujo de tus programas en Python. Experimenta con ella y asegúrate de comprenderla con claridad antes de proseguir con contenidos más avanzados.

Javier Montero Gabarró


Fecha de la última revisión: 12 de agosto de 2012


http://elclubdelautodidacta.es/wp/2011/06/python-capitulo-8-la-estructura-while/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Python – Capítulo 7: Opciones múltiples con elif

Objetivo: mostrar cómo ampliar con elif la estructura if … else en Python para la toma de decisiones múltiples.

En la última sesión de Python aprendimos cómo tratar una dicotomía: si una condición se cumple haz esto; en caso contrario, haz esto otro.

Pero, ¿y si debemos gestionar diversas opciones?

La claúsula elif dentro de la estructura if nos permite resolver este problema.

Observa su utilización en el siguiente ejemplo:


# coding=latin-1
valor = input('Introduce un número del 1 al 6: ')
if int(valor) == 1:
    print('El dado rueda..., ha salido el UNO')
elif int(valor) == 2:
    print('La suerte está echada..., ha salido el DOS')
elif int(valor) == 3:
    print('El dado nos muestra... un TRES')
elif int(valor) == 4:
    print('Increíble pero cierto... ha salido un CUATRO')
elif int(valor) == 5:
    print('Si esto fuera el parchís sacarías ficha. Ha salido el CINCO')
elif int(valor) == 6:
    print('Enhorabuena, has sacado el valor más alto del dado, el SEIS')
else:
    print('Lo siento, el dado no puede devolver ese valor')

El ejemplo es ilustrativo por sí solo: nos solicita la introducción de un número del 1 al 6 y en función del valor que hayamos facilitado realizará una tarea u otra.

Observa el uso de else, al final, para el caso contrario general en el que no se haya cumplido ninguna de las otras condiciones (por haber introducido un valor fuera del rango indicado).

La palabra elif no es más que una forma simplificada de else if y estrictamente no sería necesaria. Cualquier decisión múltiple se reduce, en última instancia, a un conjunto de decisiones binarias. La ventaja de utilizar elif es que nos permite tener el código más claro visualmente, sin las indentaciones que se producirían tras cada decisión binaria.

Javier Montero Gabarró


Fecha de la última revisión: 12 de agosto de 2012


Python – Capítulo 7: Opciones múltiples con elif


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Python – Capítulo 6: En caso contrario

Objetivo: presentar la claúsula ELSE en Python, complemento de IF para el caso en que no se cumpla la condición.

El otro día tuvimos ocasión de conocer la estructura if, que nos permitía reconducir el rumbo de ejecución de un programa en función del cumplimiento o no de una determinada condición.

Recordemos el programa anterior:


nombre = input('Introduce tu nombre de pila: ')
if nombre == 'Javier':
    print('Hola, tocayo')
apellido = input('Introduce tu apellido: ')
print(nombre, apellido)

En el supuesto de que el nombre introducido fuera Javier, se ejecutaba la función print indentada, mostrándonos el mensaje Hola, tocayo.

Pero, ¿y si deseamos que el programa realice algo en caso contrario, es decir, si la condición no se cumple?

La claúsula else (que podemos traducir como en caso contrario) sirve para este propósito.

Modifiquemos el programa anterior para que, si el nombre no coincide, nos muestre un mensaje reflejándolo.


nombre = input('Introduce tu nombre de pila: ')
if nombre == 'Javier':
    print('Hola, tocayo')
else:
    print('No, no te llamas como yo')
apellido = input('Introduce tu apellido: ')
print(nombre, apellido)

Aprecia los dos puntos después de la palabra else. Al igual que después de la condición del if, es un error común olvidarlos.

Observa también la indentación en el print después del else. Recuerda que esa indentación es la que indicará el comienzo y el fin del bloque de instrucciones a ejecutar. En este ejemplo, se ha tratado de una única instrucción; si hubiese sido preciso ejecutar varias, simplemente las colocaríamos debajo con el mismo nivel de sangrado.

Ten presente, a la hora de indentar, que los tabuladores son diferentes de los espacios, aunque en la práctica aparenten la misma separación. Sé siempre coherente y elige uno u otro, pero no los mezcles.

Ilustremos la estructura if… else con un nuevo ejemplo con el que presentaremos, además, otros aspectos del lenguaje de programación Python.


# coding=latin-1
dato = input('Introduce un número entero: ')
if int(dato) % 2 == 0:
    print('El número introducido es par')
    print('La mitad es', int(dato)//2, ', exactamente')
else:
    print('El número introducido es impar')

Este programa nos instará a introducir un número y nos dirá si es par o impar. En el primer caso, calculará, además, su mitad.

El comentario en la primera línea tiene un significado especial:

# coding=latin-1

He tenido que incluirlo para que el intérprete reconociera los acentos propios de nuestro idioma. En determinados entornos (como IDLE, que presentaremos más adelante) esto no es necesario, pero en la máquina Windows que he empleado para redactar este artículo la codificación no era la adecuada.

Fijémonos en el comienzo de la estructura if:

if int(dato) % 2 == 0:

La variable dato, recogida a través de input, es del tipo string, es decir, una cadena de caracteres. Para poder realizar operaciones aritméticas con ella es preciso convertir su valor a una cifra numérica. La función int() se ocupa de este cometido, devolviendo un valor entero.

El programa, tal como está escrito, no realiza ningún tipo de comprobación de errores a la hora de introducir el valor y espera nuestra cooperación. Si en vez de introducir un número facilitamos una cadena de caracteres, el programa devolverá un error justo en la línea en la que trata de convertirla a número entero.

El operador % nos da el resto de la división entera (también conocido como operador módulo). Si el resto de la división por dos es cero, sabremos que el número es par y se ejecutarán los dos print que aparecen a continuación. Fíjate cómo la indentación muestra perfectamente el comienzo y el final del bloque. En la segunda de las instrucciones el programa calculará la mitad del valor introducido y nos la mostrará.

Observa con detalle la expresión:

int(dato)//2

El doble signo de división significa división entera y nos devolverá únicamente la parte entera de la división (el cociente).

En caso contrario, si el resto de la división no es cero el programa nos mostrará un mensaje en pantalla indicándonos que el número introducido es impar.

Espero que hayas comprendido la lógica de la estructura if … else. En la próxima entrega le daremos una nueva vuelta de tuerca.

Javier Montero Gabarró


Fecha de la última revisión: 9 de agosto de 2012


Python – Capítulo 6: En caso contrario


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Python – Capítulo 5: Tomando decisiones

Objetivo: introducir la secuencia de control if para el control de flujo de un programa en Python.

Hasta ahora hemos desarrollado programas en los que el flujo era secuencial, ejecutando las instrucciones una tras otra desde la primera a la última.

En el ejemplo de hoy ilustraremos la forma más básica de instrucción condicional. En función del cumplimiento o no de una determinada condición, el programa tomará una dirección u otra.

Vamos a desarrollar una aplicación sencilla que realizará lo siguiente:

– Nos pedirá que introduzcamos nuestro nombre de pila.
– Si el nombre introducido es “Javier”, responderá “Hola, tocayo”.
– A continuación nos pedirá que introduzcamos el apellido.
– Finalizará mostrando nuestro nombre completo.


nombre = input('Introduce tu nombre de pila: ')
if nombre == 'Javier':
    print('Hola, tocayo')
apellido = input('Introduce tu apellido: ')
print(nombre, apellido)

Copia este código en un fichero con extensión .py y ejecútalo del siguiente modo:

python tocayo.py

Para que se cargue, deberás tener Python dentro del path de búsqueda.

Prueba a lanzarlo varias veces. En una de ellas, introduce como nombre Javier y observa que se comporta del modo previsto.

Analicemos el código detenidamente.

La primera instrucción


nombre = input('Introduce tu nombre de pila: ')

no depara ningún misterio a estas alturas: aparece un texto incitándote a introducir tu nombre, que quedará almacenado en la variable nombre.


if nombre == 'Javier':
    print('Hola, tocayo')

Aquí llega la posible bifurcación con la evaluación de la condición.

Si la variable nombre guarda como valor ‘Javier’, entonces se imprimirá Hola, tocayo.

El doble signo igual es el operador de igualdad, empleado en las comparaciones. Se utiliza el doble igual para distinguirlo del operador de asignación de variables que ya conocemos. Es un error común confundir ambos tipos de operadores.

Finalizada la condición, terminamos el if con dos puntos (:) y, debajo, indicamos la instrucción o instrucciones que se ejecutarán si se cumple la condición.

Toma nota de la indentación del código tras los dos puntos. Esto es absolutamente necesario: La indentación sirve para delimitar bloques. En este caso, indican sin confusión el conjunto de instrucciónes concretas que se ejecutarán si la condición del if es cierta.

El número de espacios a indentar es arbitrario, puedes utilizar el que desees. Pero has de ser consistente y usar siempre el mismo. Te recomiendo, también, que no mezcles espacios con tabuladores.

En el caso de que el nombre coincida se imprimirá Hola, tocayo. Si no coincide, se ignorará esa instrucción y no se ejecutará el contenido del bloque if.

Se haya ejecutado o no el bloque del if, el programa continúa con las siguientes instrucciones:


apellido = input('Introduce tu apellido: ')
print(nombre, apellido)

Nos pedirá el apellido y, continuación, imprimirá nuestro nombre completo.

Observa el uso de print para mostrar las dos variables tipo string en el mismo comando, separándolas por un espacio en blanco (comportamiento por defecto).

Es importante que te asegures de comprender cada uno de estos programas básicos perfectamente, pues serán los ladrillos que te permitirán acometer desarrollos más serios y complejos posteriormente.

Javier Montero Gabarró


Fecha de la última revisión: 4 de agosto de 2012


Python – Capítulo 5: Tomando decisiones


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Python – Capítulo 4: Programa para la conversión de velocidad a ritmo

Objetivo: construir un programa básico que permita la conversión de una velocidad en km/h a ritmo en min/Km.

En el mundo del atletismo se suele utilizar una magnitud diferente a la velocidad para indicar lo rápido que se está moviendo un corredor. Se trata del ritmo, que suele expresarse en min/Km.

Es una magnitud bastante intuitiva: un corredor que tarda 4 minutos 30 segundos en recorrer un kilómetro, decimos que mantiene un ritmo de 4:30/Km (o 4’5 min/Km).

El programa que diseñaremos hoy nos permitirá calcular el ritmo a partir de una velocidad expresada en km/h.

Salvo que usemos librerías específicas, que no es el caso, para poder lograr que un ordenador consiga aquello para lo que lo hemos programado, es siendo capaz nosotros de hacerlo a mano. ¿Cómo vamos, si no, a escribir un programa que realice unos cálculos si nosotros mismos no sabemos cuáles son?

Revisemos entonces la aritmética necesaria para efectuar esta conversión. Si no te interesa, puedes saltarte directamente este bloque y recoger sólo la fórmula final.

Supongamos que estamos corriendo a una velocidad de 10 Km/h. ¿Cuál sería nuestro ritmo? O, lo que es lo mismo, ¿en cuánto tiempo recorreríamos un kilómetro? Tratemos de deducir una fórmula que nos permita el cálculo.

Si nos fijamos en las magnitudes de la velocidad y del ritmo veremos que son inversas: la velocidad es una longitud dividida entre el tiempo, mientras que el ritmo es un tiempo dividido entre la longitud. Es decir:

  R = \frac{1}{V}

En nuestro caso, el ritmo sería 1/10, es decir, 0’1 h/Km. (Fíjate que es un tiempo dividido entre una longitud).

Ahora bien, esto no es práctico: debemos expresar las horas en minutos. Realicemos la siguiente conversión:

  \frac{0'1h}{Km} \times \frac{60min}{1h} = 6 min/Km

En resumidas cuentas, hemos hecho la inversa de la velocidad y la hemos multiplicado por sesenta.

Ya tenemos, por lo tanto, nuestra fórmula de conversión:

  R = \frac{60}{V}

donde R se expresa en min/Km y V en Km/h.

Por ejemplo, para V = 12 Km/h, R= 60/12 = 5 min/Km.

Para V= 9 Km/h; R = 60/9 = 6’66 min/km.

Conocemos ya la algorítmica. Echemos ahora un vistazo al programa que aparece en el Listado 1.

Comenzamos por pedirle al usuario que introduzca el valor de la velocidad que deseamos convertir.

velocidad = input ('Introduce la velocidad (km/h): ')

La variable velocidad recogerá el valor que el usuario introduzca. Revisemos el uso de la función input, en el que el texto que le aparecerá al usuario viene englobado entre comillas. Pueden ser comillas simples o dobles, no hay distinción. Más adelante ya explicaremos cuándo diferenciar unas de otras.

Hay que tener en cuenta un detalle importante: lo que recoge la función input es una cadena de texto (recordemos la sesión pythoniana anterior). Es decir, aunque introduzcamos un valor numérico, será considerado como si fuera una cadena de caracteres.

Difícilmente podremos realizar la división de la fórmula si no convertimos este valor previamente en un número.

Esto es lo que hace la función float, convierte el texto en un número real (siempre que esa conversión sea posible).

float (velocidad)

Ya podemos aplicar la fórmula:

ritmo = 60 / float(velocidad)

Realizamos la operación y almacenamos el resultado en la variable ritmo que esta vez si es numérica (resultado de la división de dos números).

Tan sólo resta la presentación final:

print ('El ritmo es de', ritmo, 'min/Km')

Observemos el uso:

Escribimos en primer lugar la cadena de caracteres El ritmo es de, a continuación, tras una coma, la variable numérica ritmo, y finalmente, tras otra coma, el último texto, min/km. Por defecto, la función print, en su ejecución, separa cada uno de estos elementos mediante un espacio en blanco.

Este programa es muy básico y se puede perfeccionar bastante. Podemos, por ejemplo, realizar la conversión a sexagesimal del ritmo, para que se nos muestre como minutos y segundos, que es como realmente se utiliza. O podemos ocuparnos de la gestión de errores en el caso de que introduzcamos un valor no numérico para la velocidad. El programa también podría permitir realizar la operación inversa (ritmo a velocidad) según el usuario indicara un tipo de conversión u otra.

Más adelante, cuando tengamos todos los recursos necesarios, abordaremos este programa de nuevo.

Ejercicio propuesto:

Realizar un programa en Python que calcule la velocidad a partir del ritmo introducido (lo contrario del que hemos explicado aquí).

Javier Montero Gabarró


Fecha de última revisión: 22 de julio de 2012


http://elclubdelautodidacta.es/wp/2011/05/python-capitulo-4-programa-para-la-conversion-de-velocidad-a-ritmo/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Python – Capítulo 3: Interactuando con el programa

Objetivo: crear un simple programa interactivo que pregunte nuestro nombre y nos lo devuelva por pantalla.

Vamos a abrir Python en modo interactivo. Esto nos va a permitir lanzar cada instrucción una a una y comprobar su efecto antes de ejecutar la siguiente, algo muy instructivo cuando se están dando los primeros pasos en esto. Hay varias formas de hacerlo y más adelante presentaré IDLE, mi opción favorita, pero hoy ejecutaremos Python desde la línea de comandos.

Para ello, si estamos usando Windows, podemos elegir directamente en el grupo de programas Python, Python (command line) o bien podemos abrir un intérprete de comandos e introducir:

python

Si, tal como explicamos en el capítulo anterior, agregaste la ruta a Python en el PATH del sistema, te aparecerá el prompt de Python, las famosas tres flechas:

>>>

En caso contrario, deberás lanzar el comando desde la carpeta en la que reside el ejecutable de Python.

Introduce ahora la siguiente instrucción:

>>> print ('Voy a hacerte un truco de magia')

y pulsa Enter.

Aparecerá en pantalla la frase:

Voy a hacerte un truco de magia

Escribe ahora:

>>> nombre = input ('Introduce tu nombre (no estoy mirando, tranquilo): ')

lo que te devolverá el texto

Introduce tu nombre (no estoy mirando, tranquilo):

Haz caso al requerimiento y contesta, por ejemplo:

Introduce tu nombre (no estoy mirando, tranquilo): Pepito de los Palotes

Pulsa Enter nuevamente. ¿Qué ha sucedido?

El texto que hemos introducido, Pepito de los Palotes, se ha almacenado en una variable denominada nombre.

Por el momento, basta con imaginar que una variable no es más que una caja que almacena algún tipo de unidad de información, como un número o un texto. Se denomina variable porque su contenido puede ser modificado desde el programa (a diferencia de una constante).

Decimos que a la variable nombre se le ha asignado el valor ‘Pepito de los Palotes’. (Veremos que las cadenas de caracteres en Python se rodean de comillas simples o dobles).

Fijémonos nuevamente en el comando:

nombre = input ('Introduce tu nombre (no estoy mirando, tranquilo): ')

La función input se utiliza para pedir información interactivamente al usuario. Lo que introduzcamos a continuación del texto que hay entre comillas será asignado a la variable que hay a la izquierda, antes del signo igual.

De este modo, la variable nombre ya contiene nuestro nombre. Veamos cómo prosigue el programa:

>>> print ('Y ahora voy a hacer un truco de magia...')

Aparecerá en pantalla el texto que está entre las comillas. Introduce a continuación:

>>> print ('Deja que adivine..., tu nombre es...')

lo que devuelve:

Deja que adivine..., tu nombre es...

Para finalizar, escribe:

>>> print (nombre)

Y, como por arte de magia, aparece:

Pepito de los Palotes

Fijémonos en el último comando:

print (nombre)

Esta instrucción muestra en pantalla el contenido de la variable que figura entre los paréntesis.

Observemos con cuidado el uso de print. Fíjate que aparece nombre sin comillas.

Las comillas las empleamos en print para que imprima una cadena de texto. Cuando no las ponemos es porque lo que queremos imprimir es el contenido de una variable.

Cerremos el modo interactivo de Python pulsando Ctrl-Z seguido de Enter.

Para finalizar, una vez probado el código en modo interactivo, recopilemos en un fichero de texto todos estos comandos para poder almacenar el programa y reutilizarlo cada vez que queramos sorprender a alguien.

# Gran truco de magia -- Las líneas que empiezan por # son comentarios
print ('Voy a hacerte un truco de magia')
nombre = input ('Introduce tu nombre (no estoy mirando, tranquilo): ')
print ('Deja que adivine..., tu nombre es...')
print (nombre)

Guardémoslo como magia.py en la carpeta donde almacenamos nuestras prácticas.

Para ejecutarlo, desde el prompt del intérprete de comandos, hacemos:

c:\pruebaspython> python magia.py

Voy a hacerte un truco de magia
Introduce tu nombre (no estoy mirando, tranquilo): Pedro Picapiedra
Deja que adivine..., tu nombre es...
Pedro Picapiedra

Seguro que dejas atónito a cualquiera a quien le hagas el truco (pensándolo bien, quizás no tanto).

Recuerda: ¡los buenos trucos jamás se cuentan!

Javier Montero Gabarró


Fecha de última revisión: 21 de julio de 2012


Python – Capítulo 3: Interactuando con el programa


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Python – Capítulo 2: Primer programa formal en Python

Objetivo: escribir el primer programa en Python y ejecutarlo, un gran paso en el aprendizaje de cualquier lenguaje de programación.

En el anterior episodio instalamos Python 3.2, presentamos el modo interactivo y descubrimos la función print() para mostrar en pantalla un texto.

Hoy vamos a escribir nuestro primer programa formal en Python.

La plataforma circunstancial en la que estoy trabajando en estos momentos es Windows, de modo que me referiré en particular a ella, al menos durante los primeros capítulos de esta serie. No obstante, todo lo que comente referente al lenguaje en sí, será, casi siempre, independiente del sistema operativo.

Necesitaremos un editor simple que nos permita generar ficheros de texto limpios. El más básico que trae Windows es el bloc de notas (notepad.exe).

Abrimos el bloc de notas y escribimos las siguientes líneas:

# Este es mi primer programa en Python
print ('Si soy capaz de hacer esto, ya casi sé hacer cualquier cosa')

La primera línea, que comienza con la almohadilla “#” nos indica que estamos introduciendo un comentario. Todo lo que hay desde ese símbolo hasta el final de línea es ignorado por el intérprete de Python.

Es una buena práctica de programación documentar bien los programas. Cuando más adelante tengamos que revisar el código fuente, disponer de una buena documentación nos evitará mucho tiempo tratando de descifrar lo que en su día escribimos.

Guardamos el fichero asegurándonos que tenga por extensión .py, característica de los programas en Python.

Supongamos que tenemos, entonces, el fichero programa1.py en la carpeta c:\pruebaspython, que hemos creado expresamente para nuestro aprendizaje.

Ejecutaremos el programa desde el intérprete de comandos de Windows, pero antes debemos preparar la máquina para que incluya la ruta en la que se encuentra Python en el path de búsqueda.

En Equipo, botón derecho Propiedades, o bien el el Panel de Control |Sistema (ambos caminos conducen al mismo sitio en Windows Vista), vemos, a la izquierda la opción Configuración avanzada del sistema, que nos permite entrar en el cuadro de diálogo Propiedades del sistema.

Hacemos clic en el botón Variables de entorno.

En Variables del sistema buscamos la variable PATH y hacemos clic en Editar. Nos aparece una larga línea de texto que contiene todos los directorios que están en el camino de búsqueda.

Nos posicionamos al final de esa línea y agregamos un punto y coma seguido de c:\python32 (la carpeta donde instalamos Python). Aceptamos y cerramos todas las ventanas.

Desde este mismo momento, si desde el intérprete de comandos nos posicionamos en cualquier directorio podremos ejecutar el comando python sin que aparezca un error indicando que el comando no ha sido encontrado.

Estamos en condiciones ya de ejecutar nuestro primer programa en Python. Nos dirigimos a c:\pruebaspython y ejecutamos:

c:\python> python programa1.py

Si todo ha ido como es debido, deberá aparecernos, justo debajo:

Si soy capaz de hacer esto, ya casi sé hacer cualquier cosa.

Enhorabuena, ya hemos dado el primer paso; los demás sucederán casi solos.

Javier Montero Gabarró


Fecha de última revisión: 15 de julio de 2012


Python – Capítulo 2: Primer programa formal en Python


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Python – Capítulo 1: Programando en Python

Objetivo: Mostrar la página oficial de Python, descargar e instalar la versión 3 y realizar una prueba básica de funcionamiento.

He vuelto a sacar la lámpara mágica del trastero. Ha llegado el momento de invocar al genio de nuevo.

La froto; con gesto aburrido y soñoliento aparece ante mí.

– Tú me dirás…
– Genio, quiero programar en Python -le digo.
– Escucho y obedezco…

Y me escribe, en una pizarra http://www.python.org.

Este genio es muy peculiar. Tiene un lado bueno, y es que te permite pedirle más de tres deseos, lo cual es muy de agradecer. En contrapartida, los deseos te los tienes que currar tú. Él se limita a establecer unas pautas y a asegurarte un estado mental adecuado, pero el esfuerzo duro lo tienes que realizar tú.

Visito la página web que me ha sugerido, sitio oficial de este lenguaje de programación.

Lo primero que debo hacer es descargarlo e instalarlo en el portátil que llevo conmigo en estos momentos. Se trata de una máquina Windows. Un equipo Linux lo traería, con bastante probabilidad, ya preinstalado.

Visito la sección de Descargas y me encuentro que Python se distribuye en dos sabores: versiones 2.x y 3.x.

El salto de Python de la versión 2 a la 3 ha supuesto grandes cambios en el lenguaje, hasta el punto de que, en términos generales, son incompatibles entre sí.

El proyecto 3.x es relativamente nuevo y aún existen gran número de aplicaciones que están corriendo en 2.x. Se entiende, por lo tanto, que los desarrolladores mantengan viva aún la versión antigua.

Las últimas versiones estables que podemos descargar son, en la fecha en que escribo esto (abril 2011), Python 2.7.1 y Python 3.2.

En la lista de descargas hago clic en el enlace Python 3.2 X86 MSI Installer, que me permite bajarme el fichero python-3.2.msi.

Una vez descargado hago doble clic sobre él para proceder a su instalación aceptando las opciones que me ofrece por defecto.

Instalo el paquete completo (28 MB, tan sólo) en la carpeta c\:Python32.

Antes de cerrar la página web, conviene que anotemos el siguiente enlace, donde encontraremos abundante información sobre Python 3:

http://docs.python.org/py3k

Confirmemos que todo ha ido bien.

Nos vamos a Inicio | Todos los programas | Python 3.2 y elegimos

Python (command line)

Nos aparece la pantalla típica del intérprete de comandos mostrándonos el prompt de Python, >>> esperando a obedecer nuestras órdenes. Probémoslo:

>>> print ('Gracias, genio, ya puedes volver a meterte en la lámpara')

Y pulsamos Enter.

Observemos los paréntesis del comando print (que en la versión 2 no son necesarios, pero sí en la tres) y no olvidemos enmarcar la frase entre comillas.

Ya hemos dado los primeros pasos: hemos instalado el programa y sabemos cómo hacer para que nos aparezca una frase en pantalla.

Por hoy es suficiente; en la próxima entrega escribiremos nuestro primer programa formal.

Javier Montero Gabarró


Fecha de última revisión: 14 de julio de 2012


Python – Capítulo 1: Programando en Python


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.