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.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies