Ejercicio 1

Escribe un programa en python que permita guardar las notas de un alumno conseguidas en un cuatrimestre. Guarda la información en un diccionario cuyas claves sean las asignaturas y los valores las notas de cada asignatura. El programa pedirá la asignatura y la nota para esa asignatura. Si se recibe un número negativo en la nota, el programa termina y muestra las asignaturas suspensas.

Ejemplo

ssh
Introduce una asignatura: matemáticas
Introduce la nota: 4
Introduce una asignatura: economía
Introduce la nota: 8
Introduce una asignatura: programación
Introduce la nota: 10
Introduce una asignatura: ninguna
Introduce la nota: -2
Las asignaturas suspensas son:
matemáticas

Solución 1


In [1]:
# Creamos un diccionario vacío para guardar las notas.
notas = {}
# Bucle para preguntar por la asignaturas y la notas.
while True:
    # Pregruntamos pora la asignatura y la nota
    asignatura = input('Introduce una asignatura: ')
    nota = float(input('Introduce la nota: '))
    # Condicional para ver si la nota es menor que 0.
    if nota < 0:
        # Si la nota es menor que 0 interrumpimos el bucle.
        break
    else:
        # Si la nota es mayor que 0 añadimos el par formado por la asignatura y su nota al diccionario.
        notas[asignatura] = nota
# Mostrar por pantalla las asignaturas suspensas.
print('Las asignaturas suspensas son: ')
# Bucle para recorrer el diccionario de asignaturas y notas.
for asignatura, nota in notas.items():
    # Condicional para ver si la nota es menor que 5.
    if nota < 5:
        # Si la nota es menor que 5 mostramos por pantalla la asignatura.
        print(asignatura)


Las asignaturas suspensas son: 
matemáticas

Solución 2


In [4]:
# Creamos un diccionario vacío para guardar las notas.
notas = {}
# Bucle para preguntar por la asignaturas y la notas.
while True:
    # Pregruntamos pora la asignatura y la nota
    asignatura = input('Introduce una asignatura: ')
    nota = float(input('Introduce la nota: '))
    # Condicional para ver si la nota es menor que 0.
    if nota < 0:
        # Si la nota es menor que 0 interrumpimos el bucle.
        break
    else:
        # Si la nota es mayor que 0 añadimos el par formado por la asignatura y su nota al diccionario.
        notas[asignatura] = nota
# Mostrar por pantalla las asignaturas suspensas.
print('Las asignaturas suspensas son: ')
# Comprensión de lista para obtener la lista de asinaturas suspensas.
suspensas = [asignatura for asignatura, nota in notas.items() if nota < 5]
# Contatenamos las asignaturas de la lista de asignaturas suspensas y las mostramos por pantalla.
print('\n'.join(suspensas))


Las asignaturas suspensas son: 
matemáticas