Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ESTRUCTURAS DE
CONTROL Y DE
DATOS
Programación Orientada a Objetos
Christian Joani Contreras Flores
Marco Polo Pineda Ortelli
23/02/2024
Operadores
relacionales
Los operadores relacionales son
herramientas fundamentales en
programación y matemáticas que
permiten comparar dos valores y
determinar la relación entre ellos. Estos
operadores se utilizan para evaluar si
una condición es verdadera o falsa. En
esencia, ayudan a establecer relaciones
de orden entre los valores.
2
Comprueba si dos valores son
iguales.
4
And (Y)
5
Or (O)
6
Not (No)
7
• En Python, como en muchos otros lenguajes de
programación, los condicionales son estructuras de
Condicionales control que nos permiten tomar decisiones en base a
ciertas condiciones. Estas condiciones pueden ser
evaluadas como verdaderas o falsas, y el código
ejecutará diferentes acciones dependiendo de si la
condición es verdadera o no.
8
La sentencia if
• La estructura básica de un condicional en Python utiliza la palabra clave if
(si).
Estructura:
Operador
variable = valor Relacional
if variable == valor_2:
9
if-else
• Además del if, podemos usar la palabra clave else (sino) para especificar un
bloque de código que se ejecutará si la condición del if es falsa.
Estructura:
variable = valor
if variable != valor_2:
Instrucciones a ejecutar en caso de que la condición sea
verdadera.
else:
Instrucciones a ejecutar en caso de que la condición sea
falsa.
10
elif
• También podemos usar la palabra clave elif (abreviatura de "else if") para
agregar más condiciones al condicional.
Estructura:
variable = valor
if variable >= valor_2:
Instrucciones a ejecutar en caso de que la condición sea
verdadera.
elif variable <= valor_3:
Instrucciones a ejecutar en caso de que la condición sea
verdadera y la condición anterior fuera falsa.
else:
Instrucciones a ejecutar en caso de que las condiciones sean
falsas.
11
Anidados
• En caso de tener más de una condición, también podemos usar un
condicional dentro de otro, para asegurar que ambas condiciones se
cumplan.
if
Estructura:
variable = valor
12
Anidados
if-else
variable = valor
if variable >= valor_2:
if variable <= valor_3:
Instrucciones a ejecutar en caso de que las
condiciones sean verdaderas.
else:
Instrucciones a ejecutar en caso de que las
condiciones sean falsas.
else:
Instrucciones a ejecutar en caso de que las condiciones sean
falsas.
13
Anidados
elif
variable = valor
else:
else:
14
Operadores lógicos en if
• Los operadores lógicos pueden ayudarnos a evaluar varias condiciones en un
solo if con el fin de simplificar y disminuir las líneas del código.
variable = valor
if variable >= valor_2 and variable <= valor_3 :
Instrucciones a ejecutar en caso de que las
condiciones sean verdaderas.
else:
Instrucciones a ejecutar en caso de que al menos
una de las condiciones sea falsa.
15
Laboratorio 3
A) Usando uno de los operadores relacionales en Python, escribe un programa simple de
dos líneas que:
C) Recrear el programa anterior agregando alguna estructura if para que ahora en lugar de
imprimir True or False, imprima las cadenas:
16
Laboratorio 3
Espatifilo, más comúnmente conocida como la planta de
Cuna de Moisés o flor de la paz, es una de las plantas para
interiores más populares que filtra las toxinas dañinas del
aire. Algunas de las toxinas que neutraliza incluyen benceno,
formaldehído y amoníaco.
17
Nota: {entrada} es la cadena que se toma como entrada.
Las listas son una estructura de datos fundamental en Python
que nos permite almacenar y organizar colecciones ordenadas de
elementos. Son versátiles, dinámicas y pueden contener una
variedad de tipos de datos, como números, cadenas de texto,
Listas booleanos e incluso otras listas.
Estructura:
nombre_de_la_lista = [elemento 1, elemento 2, elemento 3, …]
Ejemplo:
mi_lista = [1, 2, 3, 4, 5] 18
Métodos de listas
• append(elemento): Agrega un elemento al final de la lista.
19
Métodos de listas
• remove(elemento): Elimina la primera ocurrencia del elemento especificado
en la lista.
20
Métodos de listas
• extend(iterable): Extiende la lista agregando los elementos del iterable
proporcionado al final.
21
Métodos de listas
• count(elemento): Devuelve el número de veces que el elemento especificado
aparece en la lista.
22
Métodos de listas
• reverse(): Invierte el orden de los elementos en la lista.
23
En Python, una tupla es una estructura de datos similar a una
lista, pero con la diferencia principal de que las tuplas son
inmutables, es decir, una vez creadas, no se pueden modificar,
Tuplas agregar ni eliminar elementos. Las tuplas se utilizan para
almacenar colecciones ordenadas de elementos de manera
eficiente y segura.
Estructura:
nombre_de_la_tupla = (elemento 1, elemento 2, elemento 3, …)
Ejemplo:
mi_tupla = (1, 2, 3, 4, 5) 24
Métodos de tuplas
Métodos: Aunque las tuplas no admiten métodos para agregar o eliminar
elementos, aún ofrecen algunos métodos útiles como count() y index() para
contar ocurrencias de elementos y encontrar la posición de un elemento
específico en la tupla, respectivamente.
• count(elemento): Devuelve el número de veces que un elemento específico
aparece en la tupla.
25
Diccionarios
En Python, un diccionario es una estructura de datos que
permite almacenar pares clave-valor de manera eficiente y
flexible. A diferencia de las secuencias ordenadas como las listas
y las tuplas, los diccionarios no están ordenados, lo que significa
que los elementos no tienen un orden específico y se accede a
ellos mediante claves en lugar de índices numéricos.
• Ejemplo:
26
Métodos de diccionarios
• clear(): Elimina todos los elementos del diccionario.
27
Métodos de diccionarios
• get(clave): Devuelve el valor asociado con la clave especificada. Si la clave no existe, devuelve
el valor predeterminado (o None si no se especifica ningún valor predeterminado).
28
Métodos de diccionarios
• keys(): Devuelve una vista de las claves en el diccionario.
29
Métodos de diccionarios
• popitem(): Elimina y devuelve el último par clave-valor insertado en el diccionario.
• update(iterable): Actualiza el diccionario con los pares clave-valor del iterable especificado.
30
Métodos de diccionarios
• values(): Devuelve una vista de los valores en el diccionario.
31
Laboratorio 4 (listas):
sombrero
Había una vez un sombrero. El sombrero no contenía conejo, sino
una lista de cinco números: 1, 2, 3, 4, y 5.
32
Laboratorio 5
(tuplas)
• 1) Crear una tupla
33
Laboratorio 6
(diccionarios)
• 1) Crear un diccionario
• 2) Acceder a un valor usando una clave
• 3) Agregar un nuevo par clave-valor
• 4) Obtener todas las claves del
diccionario
• 5) Obtener todos los valores del
diccionario
• 6) Verificar si una clave está en el
diccionario
• 7) Eliminar un par clave-valor
• 8) Imprimir el diccionario.
34
Los ciclos for son una estructura de control que nos permite
iterar sobre una secuencia de elementos, como una lista, tupla,
cadena de caracteres, diccionario o cualquier otro objeto iterable.
Estos ciclos nos permiten ejecutar un bloque de código
repetidamente, una vez para cada elemento en la secuencia, sin
la necesidad de escribir código repetitivo.
>>1
>>2
>>3
>>4
>>5
36
Función range
• La función range() en Python es una función integrada que se utiliza para
generar una secuencia de números enteros en un rango especificado. Esta
función es comúnmente utilizada en bucles for para iterar sobre una
secuencia de valores numéricos.
Estructura:
Donde:
37
Ejemplo de for usando range
"in“ (en) es un operador utilizado
para verificar si un valor se
encuentra incluido dentro de la
secuencia.
Este código imprimirá los números del 0 al 4, ya que range(5) genera una
secuencia desde 0 hasta 4 (sin incluir el 5) con un paso de 1.
Estructura:
while condicion:
39
Ciclo while
Es importante tener en cuenta
que, si la condición
especificada nunca se vuelve
falsa, el ciclo while puede
ejecutarse indefinidamente, lo
que se conoce como un "bucle
infinito". Por lo tanto, es
fundamental asegurarse de
que la condición del ciclo while
eventualmente se vuelva falsa
para evitar este problema. A
continuación, se muestra una
estructura que puede generar
un bucle infinito.
while True:
#Código
40
Los ciclos while son útiles en situaciones donde el
número exacto de iteraciones no es conocido de antemano
41
Ejemplo ciclo while
El ciclo while se ejecutará siempre que la condición numero <= 5 sea verdadera.
En cada iteración, el valor de numero se incrementa en 1 (numero += 1). El ciclo se
detendrá cuando numero sea mayor que 5.
42
Instrucción: break
La instrucción break se utiliza para salir
prematuramente de un ciclo for o while
antes de que se complete su iteración
normal. Cuando se encuentra la
instrucción break, el ciclo más interno en
el que se encuentra se detiene de
inmediato y la ejecución del programa
continúa con la primera línea de código
que sigue después del ciclo.
43
Ejemplos break
Ciclo for Ciclo while
44
Instrucción: continue
La instrucción continue se utiliza para
pasar a la siguiente iteración en un ciclo
for o while, omitiendo cualquier código
restante en el bloque de bucle para la
iteración actual. Cuando se encuentra la
instrucción continue, el ciclo más interno
en el que se encuentra continúa con la
próxima iteración, ignorando cualquier
código que esté después de la declaración
continue en la iteración actual.
45
Ejemplos continue
Ciclo for Ciclo while
46
Laboratorio 7 (while): Adivina
el número secreto
Un mago junior ha elegido un número secreto. Lo ha escondido
en una variable llamada secret_number. Quiere que todos los
que ejecutan su programa jueguen el juego Adivina el número
secreto, y adivina qué número ha elegido para ellos. ¡Quiénes no
adivinen el número quedarán atrapados en un bucle sin fin para
siempre! Desafortunadamente, él no sabe cómo completar el
código.
48
Laboratorio 8 (for): Contando
lentamente (mississippily)
• ¿Sabes lo que es Mississippi? Bueno, es el nombre de uno de los
estados y ríos en los Estados Unidos. El río Mississippi tiene
aproximadamente 2,340 millas de largo, lo que lo convierte en
el segundo río más largo de los Estados Unidos (el más largo es
el río Missouri). ¡Es tan largo que una sola gota de agua
necesita 90 días para recorrer toda su longitud!
49
Laboratorio 8 (for): Contando
lentamente (mississippily)
• Utiliza el esqueleto que hemos proporcionado en el editor.
50
Laboratorio 9 (break):
atrapado en un bucle
• Diseña un programa que use un bucle
while y le pida continuamente al
usuario que ingrese una palabra, y si
el usuario ingresa la palabra secreta
"chupacabra", se debe imprimir el
mensaje "Has dejado el bucle con
éxito." y el bucle debe terminar.
51
Laboratorio 10
(continue):
múltiplos de 3
52
Tarea-Reto (while): Pirámide
• Escucha esta historia: Un niño y su
padre, un programador, juegan con
bloques de madera. Están
construyendo una pirámide.
53
Tarea-Reto (while): Pirámide
• Tu tarea es escribir un programa que lea la cantidad de bloques que tienen los
constructores, y generar la altura de la pirámide que se puede construir utilizando estos
bloques.
54
Proyecto 2.1: for
y listas
Los Beatles fueron uno de los grupos de
música más populares de la década de
1960 y la banda más vendida en la
historia. Algunas personas los consideran
el acto más influyente de la era del rock.
De hecho, se incluyeron en la compilación
de la revista Time de las 100 personas más
influyentes del siglo XX.
55
Escribe un programa que refleje estos cambios y le permita practicar con
el concepto de listas. Tu tarea es:
listas
que agregue los siguientes miembros de la banda a la lista: Stu
Sutcliffe, y Pete Best;
• Paso 4: usa la instrucción del para eliminar a Stu Sutcliffe y Pete Best
de la lista;
• Paso 5: usa el método insert() para agregar a Ringo Starr al principio
de la lista. 56
Proyecto 2.2: while, tuplas y diccionarios
Se ha preparado un ejemplo sencillo, mostrando como las tuplas y los
diccionarios pueden trabajar juntos.
Imaginemos el siguiente problema:
• Necesitas un programa para calcular los promedios de tus alumnos;
• El programa pide el nombre del alumno seguido de su calificación;
• Los nombres son ingresados en cualquier orden;
• El ingresar un nombre vacío finaliza el ingreso de los datos
• Una lista con todos los nombre y el promedio de cada alumno debe
ser mostrada al final.
Nota: también es posible hacer uso del ciclo for además del ciclo while
57
Sugerencias para el Proyecto 2.2
1) Crea un diccionario vacío para ingresar los datos;
2) Crea un bucle infinito (while) en el cual su lista de instrucciones de encarga de leer el
nombre del alumno y evaluar las siguientes condiciones:
SI el nombre es una cadena vacía, se rompe el ciclo, de lo contrario se solicita que se ingrese la
calificación del estudiante (un valor entero en el rango del 0-10).
SI la puntuación ingresada no está dentro del rango de 0 a 10, se abandona el bucle.
SI el estudiante ya se encuentra en el diccionario, se aumenta la tupla asociada con la tupla de
la nueva calificación (concatenando tupla+tupla) y SINO se crea la clave con su nombre y la
tupla con el valor de su primera calificación.
3) Se hace una búsqueda iterando en todos los elementos del diccionario y para cada
estudiante se vuelve a utilizar un ciclo con el propósito de leer cada una de sus
calificaciones y así poder calcular la calificación promedio, utilizando un contador y la
suma de sus calificaciones. Para finalizar se calcula e imprime el promedio del alumno
junto con su nombre.
58
Salida de ejemplo para el Proyecto 2.2
59
Solución para el Proyecto 2.2
60
Solución para el Proyecto 2.2
61
Solución para el Proyecto 2.2
62
Métodos de cadenas
Las cadenas en Python no se pueden modificar, los objetos de tipo string cuentan
con los siguientes métodos:
63
Métodos de cadenas
• title() #convierte a minúsculas con mayúsculas al inicio de cada palabra
64
Métodos de cadenas
• swapcase() #intercambia mayúsculas por minúsculas y viceversa
65
Métodos de cadenas
• strip() #Elimina los espacios al inicio y al final de una cadena
66
Métodos de cadenas
• rstrip("caracteres") #Elimina los caracteres a la derecha de "caracteres“
67
Métodos de cadenas de comprobación
• Los siguientes métodos sirven para verificar las características de cadenas, el
resultado siempre será un valor de tipo bool.
68
Métodos de cadenas de comprobación
• isupper() # verifica si una cadena está en mayúsculas
69
Operador in
El operador “in” verifica si un elemento se encuentra dentro de una estructura de datos.
Estructura:
elemento in cadena
70
Función type()
La función type() en Python nos permite conocer el tipo de dato de un objeto. Esto
significa que nos dice qué tipo de variable o valor estamos tratando.
Por ejemplo:
también podemos usar type() para verificar si un objeto es de un tipo específico, por
ejemplo:
type() es una función útil en Python para obtener información sobre el tipo de dato de un
objeto, lo que puede ser muy útil en la programación para tomar decisiones basadas en el
tipo de dato con el que estamos trabajando.
71
Encontrar en
una cadena
➢count(“caracter”): nos sirve
para encontrar el número de
apariciones de un caracter en
una cadena.
• find(“cadena”): nos sirve
para encontrar la posición en
la que inicia una subcadena
dentro del mensaje.
• in : verifica si existe un
caracter dentro de una cadena
• startswith(“caracter”):
verifica si un mensaje empieza
con un carácter en específico
• endswith(“caracter”):
verifica si un mensaje termina
con un caractér en específico
72
Tarea 2: Devorador de
vocales (el feo)
Tu tarea aquí es muy especial: ¡Debes diseñar un
devorador de vocales! Escribe un programa que use:
➢Un bucle for.
➢El concepto de ejecución condicional (if-elif-else).
➢La sentencia continue.
Tu programa debe:
• Pedir al usuario que ingrese una palabra.
• Convertir la palabra ingresada por el usuario a
mayúsculas y quiten los espacios antes y después del
texto.
• Utiliza la ejecución condicional y la instrucción
continue para "devorar" las siguientes vocales A, E, I,
O, U de la palabra ingresada.
• Imprime las letras no consumidas en la pantalla, cada
una de ellas en una línea separada.
73
Tarea 3: Devorador de
vocales (el lindo)
Tu tarea aquí es aún más especial que antes: ¡Debes rediseñar
el devorador de vocales (el feo) de la tarea 2 y crear un mejor
devorador de vocales (el lindo) mejorado! Escribe un programa
que use:
➢ Un bucle for.
➢ El concepto de ejecución condicional (if-elif-else).
➢ La instrucción continue.
Tu programa debe:
• Pedir al usuario que ingrese una palabra.
• Convertir la palabra ingresada por el usuario a mayúsculas
y quiten los espacios antes y después del texto.
• Emplea la ejecución condicional y la instrucción continue
para "devorar" las siguientes vocales A , E , I , O , U de la
palabra ingresada.
• Asigna las letras no consumidas a la variable
palabra_sin_vocales e imprime la variable en la pantalla
como se muestra en la entrada y salida de muestra.
74