Está en la página 1de 15

Sesión IV

Estructura de algoritmos
INTRODUCCIÓN

¡Hola!
Ya vamos en la cuarta sesión de Python. En esta sesión profundizaremos en la
programación de rutinas, aprendiendo a construir algoritmos sencillos, controlando
eventos por medio de condicionales e iterando utilizando bucles “for” y “while”.

¡Comencemos!
¿QUÉ APRENDEREMOS?

Hoy veremos los siguientes temas:


 
• Condicionales básicos
• Condicionales anidados
• Iteraciones

Recuerda que para abrir tu IDE Spyder, debes ingresar “spyder3” en la consola CMD.
Condicionales básicos (I)
En la sesión anterior vimos que existían los operadores lógicos, con los que evaluamos si una proposición era verdadera o falsa.
En la programación esto es muy útil, ya que nos permite controlar eventos y realizar acciones o tomar decisiones en función de
éstos.

Por ejemplo, en nuestra función que identifica pares, consideramos mejor que en vez de True o False, nos indique de manera
textual si el número es o no par. Para esto, introduciremos un condicional dentro de la función por medio de las sentencias “if”
y “else”, las cuales operan así:

*No olvidar la indentación.

El término True puede ser reemplazado por cualquier proposición lógica de esta forma:

Sabemos que en el sistema numérico que usamos por defecto, 2 + 2 es mayor que 2, por lo que al ser falsa la proposición, se
activa la condición “else”, imprimiendo la indicación “esto es falso”.
Condicionales básicos (II)
Copiamos esta misma estructura en nuestra función que identifica si un número es par.

Es necesario señalar que “if” no requiere de “else”. Por ejemplo, la función podría quedar así y aún funcionaría, solo que no
nos indicaría qué ocurre si el valor ingresado no es par.
Condicionales básicos (III)
Hito interactivo

Si quisiéramos invertir la función “esPar()” a “esImpar()” en la siguiente secuencia ¿cuál de las


siguientes proposiciones asignadas en el espacio vacío daría el resultado esperado?

a) x > 3 == 0
b) x % 3 == 1
c) x % 2 == 0
d) x % 2 != 0

Correcta: d)
Feedback: Recordar que el “%” devuelve el resto de una división, y que “!=” implica “distinto de”. Si
el resto de una división por 2 es 0, el número es par; si es distinto de 0, es impar.
Condicionales anidados (I)
También podemos anidar condicionales, esto es, incluir condicionales dentro de otros condicionales. Por ejemplo, si creamos
una función que evalúe si un número es par, pero queremos personalizar cuando devuelva un booleano y cuando imprima un
texto por pantalla, podemos hacerlo así:

Como se observa, la opción “text” está asignada como falso por defecto, arrojando valores booleanos, pero si al ejecutar la
función le indicamos que el parámetro “text” es verdadero (True), imprime el texto así:

La indicación “text=” al ejecutar la función es opcional, solo se


muestra a modo de ilustración, pero puede funcionar aún si no va.
Condicionales anidados (II)
si evento es igual a evento esperado
Desarmemos un poco esta idea del “if” anidado. La idea es ir realizar acción 1
controlando eventos esperados que cumplen múltiples condiciones, los sino
que a su vez tienen sub condiciones. si evento es igual a otro evento esperado
Si lo planteamos en pseudocódigo, esto se vería así: realizar acción 2
sino
realizar acción 3

En nuestro caso, la primera condición que se evalúa es si el número


ingresado es o no par.

Si el valor ingresado es par, evalúa si se pide respuesta de texto o no, en cuyo


caso, devuelve el formato esperado. Si “text” es verdadero, imprime “es par”;
si es falso (acción por defecto), retorna True.

En caso que el valor ingresado no sea par, realiza la misma secuencia, pero
esta vez devolviendo el texto “es impar” o False según corresponda.
Condicionales anidados (III)

Hito interactivo

Analiza la siguiente función.

¿Qué se imprimiría en el caso de “funcion(13)”?

a. Nada, arrojará error


b. “que te vaya bien”
c. “hola”
d. “adiós”

Correcta: b)
Iteraciones (I)
Una de las habilidades básicas de la programación es saber iterar. Como el nombre lo indica, implica la repetición de varios
elementos, como mostrar uno por uno los elementos contenidos en una lista.

Veamos un ejemplo. Tenemos un objeto lista que tiene varios elementos en su interior de esta forma:

Luego, queremos recorrer esta lista imprimiendo todos sus elementos. Para esto, se pueden usar 2 tipos de ciclos
representados por los comandos: “for” y “while”, ambos pueden ejecutar iteraciones, pero cada uno presenta algunas
variaciones. Veamos ejemplos con cada uno.
Usando for Usando while

En el caso de “while”, usamos un contador “i” iniciado en 0 (ya que la posición de las listas comienza desde 0 en Python), e
iteraremos tantas veces como elementos haya en la lista, lo que recuperamos con la función len() y lo que asignamos a la
variable “cantidadElementos”. El contador se irá auto incrementando al interior de la sentencia gracias a la indicación “+=”.
Iteraciones (II)
Veamos cada uno en mayor detalle, partiendo por el ciclo for. En este caso, si Para cada elemento i en el objeto A
lo tuviéramos que poner en pseudocódigo, esto se traduce así: realizar acción X

De ahí que hablemos de iteración, esto es, repetir varias veces una acción hasta cumplir cierta condición, en este caso,
repetir tantas veces como elementos haya en la lista. Pero nota un detalle importante, en cada iteración “i” adquiere un
valor, ya que “i” técnicamente es una variable y “for” le va asignando un valor por cada elemento en la lista, tal como se ve
en la animación:
Iteración 1 Iteración 3

i= Objeto 1 i= Objeto 3

Objeto 1 Objeto 2 Objeto 3 Objeto 4 Objeto 1 Objeto 2 Objeto 3 Objeto 4

Iteración 2 Iteración 4

i= Objeto 2 i= Objeto 4
Objeto 1 Objeto 2 Objeto 3 Objeto 4 Objeto 1 Objeto 2 Objeto 3 Objeto 4
Iteraciones (III)
Respecto al ciclo while, este tiene una lógica un tanto distinta, no itera
Mientras se cumpla cierta condición
directamente por elementos de un objeto, sino que lo hace en función realizar acción X
de una condición, lo que escrito en pseudocódigo se vería así:

De esta manera, el ciclo while puede operar, teóricamente, hasta el infinito, aunque depende de la capacidad de la
máquina. Trata ejecutando este comando:

Verás que Python imprimirá múltiples “hola”, uno tras otro, sin parar hasta que interrumpan a la fuerza la ejecución con el
cuadro rojo de la consola de Spyder, o hasta que su computadora se congele o aborte por sí mismo el programa.

Como podrán imaginar, esto permite que el ciclo while sea dinámico y pueda operar en
función de procesos internos que se ejecuten mientras itere. Piensen en un juego de
piedra papel o tijera entre 2 personas, el cual se sigue jugando mientras (while) exista
empate, esto es, una de las dos personas debe ganar a lo menos 1 ronda para ganar en
un juego que puede tener 1, 2, 3 rondas, o más. En las próximas sesiones usaremos
while para simular este escenario.
Iteraciones (IV)
No existe una regla general para cuándo usar cada ciclo, simplemente dependerá del problema que enfrentes.
Por ejemplo, el ciclo “for” permite otras formas de iteración, comúnmente se utiliza la función range(), la cual genera una
cantidad de números corridos desde cierto valor.
Si tomamos como ejemplo nuestro arreglo anterior, si solo quisiéramos imprimir los primeros 3 elementos, lo podemos
visualizar así:

En este caso, la función range() define 3 números corridos desde cero, esto
es (0, 1, 2).

Este formato de iteración con “for”, nos permite capturar el índice del arreglo con su respectivo objeto, lo cual podemos
representar imprimiendo:

Notar que el índice “i” fue convertido a cadena


con la función str(). Esto se conoce como parsear
un valor.
CIERRE

Has completado la sesión 4 del curso de Python ¡Felicidades!

En esta sesión aprendiste elementos básicos de la estructura de algoritmos en Python, controlar eventos por medio de
condicionales y usar iteraciones para recorrer arreglos o listas. Incluso vimos cómo parsear un valor, una técnica muy utilizada
en programación.

En la próxima sesión aplicaremos todo lo aprendido hasta ahora.

¡Te esperamos!

También podría gustarte