Modulo #3 Python
En el módulo 3 de Fundamentos de Python, se abordan diferentes temas
como los datos booleanos, operadores relacionales, toma de decisiones
con condicionales (if, if-else, if-elif, else), bucles (while, for), operaciones
lógicas y de bits, listas en Python, ordenamiento de listas con algoritmos
de clasificación, listas multidimensionales y aplicaciones. Python utiliza
operadores de comparación como == (igual a) y != (no es igual a) para
hacer preguntas y tomar decisiones en base a respuestas recibidas. Se
muestra cómo utilizar estos operadores para comparar valores y utilizar
las respuestas para realizar acciones específicas en el programa.
También se introducen otros operadores de comparación como > (mayor
que), >= (mayor o igual que), < (menor que), <= (menor o igual que) y se
muestra cómo utilizarlos en diferentes situaciones. Se discute la
importancia de las respuestas obtenidas de las comparaciones y cómo
utilizarlas para tomar decisiones en el flujo del programa. Se introduce la
instrucción condicional if para ejecutar ciertas acciones solo si se cumple
una condición específica, mostrando un ejemplo de cómo usarla para
decidir si hacer una actividad basada en una condición dada.
El uso de ejecuciones condicionales en Python, como la sentencia if y la
sentencia if-else, permite que un programa tome decisiones basadas en
condiciones específicas. Por ejemplo, si un contador de ovejas alcanza
cierto número, el programa puede inducir el sueño. Además, el uso de la
sentencia elif permite verificar múltiples condiciones en cascada y
realizar acciones basadas en ellas. También se introducen ejemplos de
pseudocódigo y se explica el uso de bucles para problemas complejos.
En un escenario relacionado con plantas, se pide al programador escribir
un programa que responda de manera específica según la entrada
proporcionada.
El texto proporciona dos ejercicios prácticos para que los estudiantes se
familiaricen con el uso de sentencias if-else, if-elif-else, operadores de
comparación y reglas de programación en Python. El primer ejercicio
trata sobre calcular impuestos basados en ingresos y el segundo sobre
determinar si un año es bisiesto o común. También se incluyen
explicaciones detalladas sobre los operadores de comparación y
sentencias condicionales como if, elif, else, así como ejercicios para
practicar y reforzar el aprendizaje.
Los bucles (ciclos) en el código con while son utilizados para repetir
instrucciones siempre que se cumpla una condición. En Python, se utiliza
la palabra clave "while" seguida de una expresión condicional y las
instrucciones a repetir. Si la condición es falsa desde el principio, el
cuerpo del bucle no se ejecuta. También se puede caer en un bucle
infinito si no se establece una condición de salida adecuada. Se puede
usar el bucle while para realizar diversas tareas, como encontrar el
número más grande de un conjunto de datos, contar números pares e
impares, o implementar un juego de adivinar un número secreto.
Por otro lado, se presentan los bucles en el código con for, que se
utilizan cuando es más importante contar las "vueltas" del bucle que
verificar condiciones. El bucle "for" en Python se utiliza para iterar sobre
una secuencia de elementos. Este bucle simplifica la tarea de realizar
bucles con un número fijo de repeticiones. Se pueden personalizar los
valores de inicio, fin e incremento en la función range() utilizada en el
bucle for. También se pueden simplificar expresiones en el código sin
cambiar su comportamiento, y la función range() en Python permite
generar secuencias de números que se adaptan a las necesidades de la
programación.
Las sentencias break y continue son instrucciones especiales en Python
que permiten controlar el flujo de un bucle. La instrucción break se utiliza
para salir inmediatamente de un bucle, mientras que la instrucción
continue se utiliza para pasar a la siguiente iteración sin ejecutar el resto
del código en el bucle actual.
En el primer ejemplo, se muestra cómo usar la instrucción break para
encontrar el número más grande entre los números ingresados por el
usuario. El bucle continuará solicitando números hasta que se ingrese -1,
momento en el que se romperá el bucle y se imprimirá el número más
grande encontrado.
En el segundo ejemplo, se muestra cómo usar la instrucción continue
para lograr el mismo resultado. En este caso, el bucle continuará
solicitando números y omitirá cualquier evaluación adicional si se ingresa
-1, pasando directamente a la siguiente iteración.
Ambos ejemplos muestran cómo estas instrucciones pueden simplificar
el código y controlar el comportamiento de un bucle de manera efectiva.
Además, se plantea un escenario para diseñar un programa que use la
instrucción break para solicitar continuamente al usuario que ingrese una
palabra hasta que se ingrese la palabra secreta "chupacabra". Una vez
que se ingresa esta palabra, el programa mostrará un mensaje y se
romperá el bucle.
Por último, se propone un desafío adicional para rediseñar un programa
que "coma" las vocales de una palabra ingresada por el usuario
utilizando la instrucción continue. En este caso, se pide al usuario que
ingrese una palabra, se convierte a mayúsculas, y cada vocal (A, E, I, O,
U) se elimina de la palabra final impresa en la pantalla.
En resumen, las sentencias break y continue son herramientas útiles
para controlar el flujo de un bucle en Python y simplificar la lógica de
programación, permitiendo al programador mejorar la eficiencia y claridad
de su código.
El bucle while y la rama else permiten que un bucle tenga una rama
adicional que se ejecutará una vez, independientemente de si el cuerpo
del bucle se ejecuta o no. En el caso de los bucles for, la variable de
control conservará su último valor si el cuerpo del bucle no se ejecuta.
En el escenario presentado, se plantea el desafío de construir una
pirámide con bloques de madera. El programa debe calcular la altura de
la pirámide posible con la cantidad de bloques dada. Se proporcionan
ejemplos de datos de prueba y resultados esperados.
Además, se plantea otro escenario basado en la hipótesis de Collatz, que
consiste en un bucle while que opera sobre un número natural para
llevarlo a 1 siguiendo ciertas reglas. Se proporcionan ejemplos de datos
de prueba y una salida esperada para este caso específico.
Se explican los operadores lógicos (and, or, not) y los operadores bit a bit
(&, |, ^, ~) para realizar operaciones booleanas o de bits específicas en
Python. Se brinda una descripción detallada de su funcionamiento y
ejemplos de su aplicación en el código.
Te enseñamos cómo utilizar operadores de bits para manipular bits
individuales en Python. Puedes verificar, restablecer, establecer y negar
bits utilizando diferentes operadores. También aprendiste sobre el
desplazamiento binario a la izquierda y a la derecha, que te permite
multiplicar o dividir valores binarios por dos. Además, discutimos la
prioridad de los operadores y cómo utilizarlos en tus programas de
Python. Además, exploramos la creación y manipulación de listas,
incluyendo indexación, acceso a elementos, longitud de la lista y
eliminación de elementos. Finalmente, aprendiste a agregar elementos a
una lista utilizando los métodos append() e insert(). ¡Sigue practicando
para mejorar tus habilidades en Python!
El proceso de ordenar una lista es importante en programación y se
puede hacer de varias formas, como el ordenamiento burbuja. Este
algoritmo compara elementos adyacentes y los intercambia si es
necesario para ordenar la lista. También se pueden usar métodos como
sort() y reverse() en Python para ordenar y revertir listas de forma más
eficiente. Además, se pueden utilizar rebanadas para copiar partes de
una lista y evitar cambios no deseados. La comprensión de estos
conceptos es fundamental para dominar el manejo de listas en Python.
El código presenta algunas operaciones con listas en Python. Explica
cómo copiar listas, eliminar elementos y el uso de los operadores in y not
in para verificar la presencia de elementos en una lista. Además, muestra
ejemplos de programas simples que utilizan listas, como encontrar el
valor mayor en una lista, buscar la ubicación de un elemento en una lista
y determinar cuántos números coinciden en dos listas.
También se presenta un ejercicio en el que se pide eliminar las
repeticiones de números en una lista dada. Se dan algunas sugerencias
y se espera que el estudiante realice el ejercicio para practicar el manejo
de listas en Python.
Además, se explora el concepto de listas dentro de listas, mostrando
cómo se pueden utilizar listas bidimensionales para representar tableros
de ajedrez. Se muestra cómo crear un tablero de ajedrez utilizando listas
dentro de listas y cómo acceder a elementos específicos en un tablero
bidimensional mediante la indexación con dos índices. Se proporcionan
ejemplos de creación de tableros de ajedrez y colocación de piezas en
posiciones específicas.
Las listas en Python pueden ser multidimensionales, lo que significa que
pueden contener información organizada en varias dimensiones. En una
lista bidimensional, se pueden utilizar dos coordenadas para encontrar un
elemento específico. Por ejemplo, si estás desarrollando software para
una estación meteorológica automática que registra la temperatura del
aire cada hora durante un mes, puedes usar una lista bidimensional para
almacenar todos los valores. En este caso, cada fila representará una
hora del día y cada columna un día del mes.
Para crear una lista bidimensional en Python, se pueden usar
comprensiones de listas. Por ejemplo, puedes inicializar una lista llena de
ceros que representará las temperaturas registradas. Luego, puedes
calcular la temperatura promedio al mediodía y la temperatura más alta
registrada durante todo el mes. También puedes contar los días en los
que la temperatura al mediodía fue de al menos 20 ℃.
Además de las listas bidimensionales, también es posible crear arreglos
tridimensionales en Python. Por ejemplo, si quisieras procesar
información sobre habitaciones en un hotel con tres edificios, 15 pisos y
20 habitaciones por piso, podrías crear un arreglo tridimensional con
valores Booleanos para indicar qué habitaciones están ocupadas. Este
arreglo te permitiría reservar o desocupar habitaciones y verificar la
disponibilidad en un piso específico.
Las comprensiones de listas en Python te permiten crear nuevas listas de
forma concisa y elegante. La sintaxis para una comprensión de listas es
[expresión for elemento in lista if condición], que es equivalente a un
bucle for tradicional con una condición. También es posible anidar listas
dentro de listas para crear matrices o arreglos multidimensionales con
tantas dimensiones como sea necesario.
En resumen, las listas multidimensionales en Python, como las
bidimensionales y tridimensionales, son útiles para organizar datos de
manera estructurada y realizar operaciones específicas, como cálculos
promedio, encontrar valores máximos o contar elementos que cumplan
ciertas condiciones. Python ofrece herramientas como las comprensiones
de listas y la capacidad de anidar listas para trabajar con arreglos n-
dimensionales de manera eficiente y flexible.