En la anterior entrega aprendimos la sintaxis de los elementos más básicos en el lenguaje Python. Sabemos ya cómo declarar variables y manipularlas mediante operaciones. Aprendimos a definir y utilizar una función, y además, estudiamos la funciòn print, fundamental para crear nuestros primeros programas.
Este artìculo corresponde a la séptima entrega de una serie, si deseas aprender desde cero y con detalle el mundo de la informática y la programación acude a los siguientes enlaces en orden:
Continuemos
En esta ocasión, al igual que en el artìculo anterior utilizaremos un interpretador interactivo online, pero no el mismo. Ahora, utilizaremos un interpretador que nos permitirá utilizar varios archivos, escribir nuestro código, y ejecutarlo posteriormente. Es decir, simularemos un entorno de desarrollo que nos permitirá crear programas ejecutables. Lo podemos encontrar en Este sitio
Deberías llegar al siguiente lugar:
Imagen propia
Primero, para familiarizarnos con el entorno escribamos un simple código:
print(“¡Funciona!”)
Presionen la combinación de teclas ctrl+enter y el programa se ejecutará, deberían obtener el siguiente resultado:
Imagen propia
¡Manos a la obra!
Crearemos un programa llamado “Súper gestor de tareas 2000”, el cual, tiene la capacidad de crear una lista de tareas pendientes, y modificarlas según nuestra necesidad. Para comenzar definamos las variables fundamentales para el funcionamiento de este programa
toDo=["Lavar", "Barrer"] #Arreglo de tareas, llamado toDo por el inglés "Por hacer"
option='' #Opción elegida por el usuario
Declaramos la variable option como un string (cadena de texto) vacío, dado que tomará posteriormente distintos valores . Está se encargará de recibir información ingresada por el usuario, ya la comprenderemos más adelante. El arreglo de tareas ya contiene valores iniciales. El símbolo # se utiliza en Python para escribir comentarios, es decir texto que no será ejecutado por el programa, y que es de gran utilidad para escribir información relevante.
Escribamos un pequeño mensaje descriptivo y de bienvenida:
print("¡Bienvenido a su súper gestor de tareas 2000!")
print("")
Escribimos print("") para dar un espacio en blanco, y hacer del programa más agradable visualmente.
Interfaz de usuario
Queremos que el usuario que utilice el programa interactúe con él, a través de un menú, que contiene las opciones para ejecutar las diversas funcionalidades del programa. Este menú es llamado interfaz de usuario, que es el medio por el que el usuario se comunica con el programa.
Para crear esta interfaz utilizaremos repetidas veces la función print(), con la cual "dibujaremos" el menú:
print("Que desea?")
print("1.-Ver tareas pendientes")
print("2.-Marcar tareas como completadas")
print("3.-Agregar tareas pendientes")
print("4.-Salir")
print("")
option=input("Ingrese su opción:") #La función input recibe la información ingresada por el usuario.
print("")
Tal como podemos ver en el comentario del código anterior, la variable option que declaramos en un inicio tomará el valor ingresado por el usuario a través de la función input(). Cuando utilizamos esta función, la consola esperará hasta que el usuario ingrese un valor, posteriormente este valor es almacenado en la variable option.
¡Ya tenemos nuestra interfaz!, hasta el momento nuestro código se encuentra de la siguiente forma :
Imagen Propia
Cuando ejecutamos el programa, obtenemos lo siguiente en la terminal:
Imagen Propia
Podemos ver que ingresamos un valor, pero el programa no hace nada con el. Para solucionar este problema tenemos que utilizar una estructura selectiva, que estudiamos anteriormente en el artículo de Pseudocódigos.
Queremos que el programa ejecute distintas instrucciones dependiendo del valor ingresado por el usuario. Si el usuario ingresa la opción "1", queremos mostrar las tareas por hacer, es decir los elementos de la lista toDo . Es decir, queremos la siguiente estructura:
si(option==1) entonces
mostrar elementos toDo
En Python, la forma de escribir esta estructura sería la siguiente:
if (option=="1"): #Mostramos los elementos del arreglo "toDo"
for i in toDo:
print(i)
Estamos diciendo lo siguiente: Si option=1 , para la variable i en toDo muestra el elemento i-ésimo de la lista. En otras palabras, for i in toDo significa: "para cada elemento de la lista toDo, muestra el elemento en pantalla"
Lo anteriormente descrito corresponde a una estructura iterativa, bucle para, o comúnmente conocido como ciclo for.
Pero queremos que lo que se muestra en pantalla sea lo más agradable posible para el usuario, de modo que añadiremos lo siguiente:
if (option=="1"): #Mostramos los elementos del arreglo "toDo"
print("Tareas pendientes:")
print("")
for i in toDo:
print(i)
Ahora, añadiremos las instrucciones para las otras opciones del programa, comenzaremos por la opción 2. Queremos marcar tareas como completadas, es decir, eliminar elementos del arreglo toDo que ya hayan sido completados. Lo haremos del siguiente modo:
elif (option=="2"): #Eliminamos los elementos del arreglo ingresados por el usuario
mark=''
while (mark != "volver"):
mark=input("¿Que tarea completó? (escriba 'volver' para volver)")
if(mark != "volver"):
toDo.remove(mark)
¿Por que elif?, es un pseudónimo de else if, es decir "de lo contrario si". Si la condición anterior en if no se cumple, pero si se cumple la mencionada en elif, entonces se ejecutan las instrucciones listadas posteriormente.
La variable mark almacenará la información ingresada por el usuario, en este caso la tarea completada, es decir el elemento de la lista que eliminaremos. Para que el usuario pueda ingresar indefinidamente elementos, haremos que necesite ingresar la palabra "volver" para terminar. Esto lo hacemos con una estructura iterativa mientras. Mientras mark sea distinto de "volver", se ejecutarán las instrucciones en una cantidad de ciclos indeterminada. Cuando el usuario ingrese el valor "volver", se romperá el ciclo while, y el programa continuará con las siguientes instrucciones.
Si mark es distinto de volver, entonces se eliminará el elemento del arreglo ingresado por el usuario.
Para la opción "3" el método es equivalente, con la diferencia de que en vez de eliminar elementos, los añadiremos:
elif (option=="3"): #Añadimos al arreglo los elementos ingresados por el usuario
app=''
while (app != "volver"):
app=input("¿Que tarea desea agregar? (escriba 'volver' para volver)")
if (app != "volver"):
toDo.append(app)
¡Hemos hecho un gran avance!, nuestro código se ve de la siguiente manera:
Imagen Propia
Y cuando ejecutamos el programa:
Imagen Propia
¡Funciona!, pero tenemos un pequeño problema: cuando elegimos una opción, se ejecutan satisfactoriamente sus instrucciones, pero el programa se cierra; nos gustaría que volviese al menú principal, y el programa se ejecutase hasta que elijamos la opción 4 "salir". Pero, ¡claro!, si vemos más atrás, nos encontramos con un problema conocido: cuando eliminamos o agregamos elementos a lista, ejecutamos una lista de instrucciones en una cantidad de ciclos indefinidos hasta que ingresamos un valor en particular, ¡podemos hacer lo mismo!, con la diferencia de que en esta ocasión sería para el código casi completo.
Por lo tanto, todo debe estar dentro de un ciclo while:
Imagen Propia
Importante:Todas las instrucciones dentro del nuevo ciclo while se deben correr un espacio a la derecha, tal como podemos ver en la imagen. Para ello selecciona cada línea en su inicio, y presiona la tecla tab.
Cuando ejecutamos el programa obtenemos:
Imagen Propia
Y si vemos las nuevas tareas pendientes, es decir el estado de la lista toDo:
Imagen Propia
¡Misión cumplida!
Terminamos nuestro ¡Súper gestor de tareas 2000!
En el proceso aprendimos la sintaxis de las estructuras de control fundamentales en python, y ¡logramos escribir nuestro primer programa ejecutable!.
Pero faltan cosas por resolver: ¿qué pasa cuando cierro el programa?,¿las tareas por hacer se borran y la lista toDo vuelve a ser la misma de antes?, pues sí, pero en la próxima entrega aprenderemos cómo escribir y leer archivos externos, los que utilizaremos para almacenar los valores de la lista, y poder utilizar estos valores en una próxima ejecución del programa
Hasta el momento sólo hemos utilizado interpretadores interactivos online, el próximo miércoles aprenderemos a instalar Python en nuestro sistema y escribiremos este mismo programa localmente, ¡creando un archivo ejecutable!, es decir, podremos crear el programa y ejecutarlo en nuestro propio computador, tal y como instalamos otros programas, a diario.
¡Nos vemos el próximo miércoles!, un afectuoso saludo
Equipo de desarrollo Cervantes
Por @vhinojosa
Muy bueno, solo tengo una duda, ¿se puede escribir volve sin "r"?
Hola!, solo puede ser "volver", el programa falla si ingresas otra palabra, dado que en el código se especifíca que sea solo "volver".
Saludos!
¡Excelente! Yo necesito aprender phyton para hacer mi tesis de pregrado. Estare viendo los otros post para aprender con ustedes. ¡Muchas gracias por su dedicación!
¡Muy bien!, esperamos ser de gran ayuda.
Saludos
Que clarito parece hasta sencillo, wjajaja
Gracias por estas publicaciones @cervantes
Un abrazo!
¡Que bien! jeje, nos alegra ser de ayuda.
Saludos
Excelente publicación! Saludos!
Muchas gracias!, saludos
gracias por estas explicaciones-