Tema 01: Introducción informal (Soluciones)

Nota: Estos ejercicios son optativos para hacer al final de la unidad y están pensados para apoyar tu aprendizaje.

1) Identifica el tipo de dato (int, float, string o list) de los siguientes valores literales

"Hola Mundo"        # string
[1, 10, 100]        # list
-25                 # int
1.167               # float
["Hola", "Mundo"]   # list
' '                 # string

2) Determina mentalmente (sin programar) el resultado que aparecerá por pantalla a partir de las siguientes variables:

a = 10
b = -5
c = "Hola "
d = [1, 2, 3]
print(a * 5)         # 50
print(a - b)         # 15
print(c + "Mundo")   # Hola Mundo
print(c * 2)         # Hola Hola 
print(c[-1])         # 3
print(c[1:])         # [2, 3]
print(d + d)         # [1, 2, 3, 1, 2, 3]

3) El siguiente código pretende realizar una media entre 3 números, pero no funciona correctamente. ¿Eres capaz de identificar el problema y solucionarlo?


In [3]:
numero_1 = 9
numero_2 = 3
numero_3 = 6

media = (numero_1 + numero_2 + numero_3) / 3  # Hay que realizar primero la suma de los 3 números antes de dividir
print("La nota media es", media)


La nota media es 6.0

4) A partir del ejercicio anterior, vamos a suponer que cada número es una nota, y lo que queremos es obtener la nota final. El problema es que cada nota tiene un valor porcentual:

  • La primera nota vale un 15% del total
  • La segunda nota vale un 35% del total
  • La tercera nota vale un 50% del total

Desarrolla un programa para calcular perfectamente la nota final.


In [7]:
nota_1 = 10
nota_2 = 7
nota_3 = 4

# Completa el ejercicio aquí
media = numero_1 * 0.15 + numero_2 * 0.35 + numero_3 * 0.50  # Podemos multiplicar en tanto por 1 cada nota y sumarlas
print("La nota media es", media)


La nota media es 5.3999999999999995

5) La siguiente matriz (o lista con listas anidadas) debe cumplir una condición, y es que en cada fila, el cuarto elemento siempre debe ser el resultado de sumar los tres primeros. ¿Eres capaz de modificar las sumas incorrectas utilizando la técnica del slicing?

Ayuda: La función llamada sum(lista) devuelve una suma de todos los elementos de la lista ¡Pruébalo!


In [10]:
matriz = [ 
    [1, 1, 1, 3],
    [2, 2, 2, 7],
    [3, 3, 3, 9],
    [4, 4, 4, 13]
]

# Completa el ejercicio aquí
matriz[1][-1] = sum(matriz[1][:-1])
matriz[3][-1] = sum(matriz[3][:-1])

print(matriz)


[[1, 1, 1, 3], [2, 2, 2, 6], [3, 3, 3, 9], [4, 4, 4, 12]]

6) Al realizar una consulta en un registro hemos obtenido una cadena de texto corrupta al revés. Al parecer contiene el nombre de un alumno y la nota de un exámen. ¿Cómo podríamos formatear la cadena y conseguir una estructura como la siguiente?:

  • Nombre Apellido ha sacado un Nota de nota.

Ayuda: Para voltear una cadena rápidamente utilizando slicing podemos utilizar un tercer índice -1: cadena[::-1]


In [11]:
cadena = "zeréP nauJ,01"

# Completa el ejercicio aquí
cadena_volteada = cadena[::-1]
print(cadena_volteada[3:], "ha sacado un", cadena_volteada[:2], "de nota.")


Juan Pérez ha sacado un 10 de nota.