🪞 Autoevaluación
1 Variables
¿Qué valor contiene la variable
contador
luego de ejecutar el siguiente código?= 20 contador + 1 contador
Complete la siguiente tabla indicando si el nombre es válido para una variable de Python.
Nombre ¿Válido? Justificación balance
balanceActual
balance-actual
balance actual
balance_actual
mis.datos
0cuenta
cuenta0
_cuenta
SPAM
cantidad$
2 Números
¿Cuál es el tipo de
10 / 2
? ¿Por qué?¿Cuál es el tipo de
5 * 2
? ¿Por qué?¿Por qué
5 == 5.0
esTrue
?
3 Booleanos
¿Cuál es el resultado de las siguientes expresiones? ¿Por qué?
False or not False
not (True and True)
not True and True
"True" != True
10 > 5 + 3
None is None
False is False
Ejecute línea por línea los siguientes bloques y analice los resultados.
int(True) * 50 True * 50
1 is True bool(1) is True id(True) id(bool(1)) id(bool(1024))
¿Cuáles son los 3 operadores booleanos?
4 Cadenas de caracteres
¿Por qué la siguiente comparación resulta en
True
?"spam" + "spamspam" == "spam" * 3
¿Por qué la siguiente expresión resulta en un error? ¿Cómo se puede arreglar?
"Me comí " + 6 + " panchos."
¿Encuentra algo extraño en la siguiente expresión? ¿Cómo la mejoraría?
= "Programación 2" materia print("¡Sean bienvenidos a la materia {materia}!")
Explique por qué es redundante utilizar
str()
en el siguiente bloque de código:= 10, 20 x, y print(f"La suma de {str(x)} y {str(y)} es: {str(x + y)}.")
Considere el siguiente bloque de código:
= "Hola, ¿cómo estes?" mensaje -3] = "á" mensaje[
- ¿Cuál es la intención detrás del programa?
- ¿Por qué no funciona?
- ¿Cómo podría arreglarlo? Alerta: la solución no es muy elegante.
¿Cuál es el resultado de
list("abcdefgh")
? ¿Por qué?¿Por qué
set("abcde")
es distinto de{"abcde"}
?
5 Funciones
¿Cuál es la diferencia entre una función y una llamada a función?
¿Cuál es el valor que devuelve una función que no tiene
return
?¿Cuándo se ejecuta el código dentro de una función: cuando la función se define o cuando se la llama? Considere la siguiente función:
def suma(x, y): print(100 / 0) return x + y
Luego, ejecute el siguiente bloque:
2, 4) suma(
6 Listas
¿Qué es
[]
? ¿Cuál es el resultado delen([])
?¿Por qué la siguiente expresión resulta en
False
? Ayuda: use la funciónid()
.is [] []
¿Por qué se obtiene un error en el siguiente bloque de código?
= [] l 0] l[
Si
[0][0]
devuelve0
, ¿por qué[1][1]
no devuelve[1]
?¿Cuál es el valor de
x
en el siguiente bloque de código? ¿Por qué?= ["hola", "hola hola", "hasta luego"] l = l.remove("hola") x
¿Cómo le asignaría el valor
"hola"
como el tercer valor en una lista almacenada en una variable llamadacosas
? Asuma quecosas
contiene[2, 4, 6, 8, 10]
.Asuma que
letras
contiene la lista["a", "b", "c", "d"]
:- ¿A qué evalúa
letras[-1]
? - ¿A qué evalúa
letras[:2]
? - ¿A qué evalúa
letras[int(int('3' * 2) // 11)]
? ¿Es necesario usar dos vecesint()
?
- ¿A qué evalúa
Asuma que
bartulos
contiene la lista[3.14, "casa", 11, "casa", True]
:- ¿A qué evalúa
bartulos.index("casa")
? ¿Por qué? - ¿Cómo queda la lista en
bartulos
después de ejecutarbartulos.append(99)
? - ¿Cómo queda la lista en
bartulos
después de ejecutarbartulos.remove("casa"')
?¿Por qué?
- ¿A qué evalúa
¿Cuáles son los operadores para la concatenación y la replicación de listas?
¿Cuál es la diferencia entre los métodos
append()
einsert()
de las listas?¿Cuáles son dos formas de eliminar valores de una lista?
El siguiente bloque de código imprime
['a', 'b', True, 30]
. ¿Por qué?= ["a", "b", True] cosas = cosas bartulos 20 + 10) bartulos.append(print(cosas)
Considere el siguiente bloque de código:
= ["Milka", "Cofler", "Águila", "Cadbury", "Lindt", "Toblerone", "After Eight"] marcas 2:5] marcas[
que correctamente muestra
["Águila", "Cadbury", "Lindt"]
. ¿Por qué el siguiente bloque de código no funciona?= ["Milka", "Cofler", "Águila", "Cadbury", "Lindt", "Toblerone", "After Eight"] marcas = 2:5 indices marcas[indices]
7 Tuplas
¿Por qué la tupla no implementa un método similar al método
.extend()
de las listas?Las tuplas de Python son conocidas por ser inmutables. Por ejemplo, el siguiente bloque de código resulta en un error:
= (1, 2, 3) tupla 1] = 10 tupla[
Sin embargo, el siguiente bloque no arroja ningún error y pareciera que se logra modificar la tupla exitosamente:
= ["Hola", 10, None] bartulos = (1, bartulos, 3) tupla 1].append("¡Sorpesa!") tupla[ print(tupla)
¿Qué pasó?
8 Diccionarios
¿Cómo se escribe en código un diccionario vacío?
¿Cómo se ve un diccionario que tiene la clave
"cosa"
y el valor15
?¿Cuál es la principal diferencia entre un diccionario y una lista?
¿Qué ocurre si se intenta acceder a
bartulos["cosa"]
cuandobartulos
es{"coso": 100}
?Si un diccionario está almacenado en
bartulos
, ¿cuál es la diferencia entre las siguientes expresiones?"cosa" in bartulos "cosa" in bartulos.keys()
Suponga el diccionario
datos = {"nombre": "Juan"}
. ¿Por qué la siguiente expresión resulta enFalse
?"Juan" in datos
9 Control de flujo
9.1 Condicionales
Explique qué es una condición y en qué situaciones se utilizaría.
Identifique los tres bloques de código en el siguiente ejemplo:
= 0 codigo if codigo == 10: print("mensaje 1") if codigo > 5: print("mensaje 2") else: print("mensaje alternativo") print("mensaje final") print("Fin del programa")
¿Tienen sentido las comparaciones utilizadas?
¿Cuál es el problema con el siguiente programa? Proponga una solución.
= 10 numero if numero < 0: print(f"El numero {numero} es negativo") elif numero < -5: print(f"El numero {numero} es menor a -5") elif numero > 0: print(f"El numero {numero} es positivo") else: print(f"El numero {numero} es 0")
9.2 Bucles
Considere el siguiente programa:
for i in range(10): print(i)
Escriba un programa que realice la misma tarea utilizando un bucle
while
.¿Cuál es la diferencia entre
range(10)
,range(0, 10)
yrange(0, 10, 1)
en un buclefor
?Suponga que
numeros
es una lista que contiene numeros enteros, ¿en qué se diferencian los siguientes bloques de código?for i in numeros: if i % 2 == 0: break print(i)
for i in numeros: if i % 2 == 0: continue print(i)
¿Es posible re-escribir el siguiente bloque de código usando
while True
? ¿Qué modificaciones habría que hacer?= 0 suma = 0 i while suma <= limite: += numeros[i] suma += 1 i