Ejercicio 3

Escribir un programa para ver los beneficios de una empresa en un periodo de años.

El programa debe cumplir los siguientes requisitos:

  • El programa tiene que preguntar al usuario por un año inicial y otro final, y después preguntar por los ingresos y los gastos de cada año desde el año inicial hasta el año final.
  • Con los datos introducidos se deben crear dos listas, una con los ingresos y otra con los gastos, de manera que los ingresos y los gastos de cada año aparezcan en la misma posición de las listas.
  • El programa debe crear otra lista con el beneficio de cada año (ingresos menos gastos) y mostrarla por pantalla.
  • El programa debe crear otra lista booleana que indique para cada año si ha habido beneficios o no y mostrarla por pantalla.
  • Finalmente el programa debe mostrar por pantalla la lista de los años con beneficios la lista de los años con pérdidas.

Solución


In [1]:
# Pregunta por los años inicial y final
inicio = int(input('Introduce el año inicial: '))
fin = int(input('Introduce el año final: '))
# Definimos las listas de años, ingresos y gastos vacías
años = []
ingresos = []
gastos = []
# Preguntamos por los ingresos y gastos de cada año y los añadimos a las listas correspondientes
for i in range(inicio, fin+1):
    años.append(i)
    ingresos.append(float(input('Ingresos del año ' + str(i) + ': ')))
    gastos.append(float(input('Gastos del año ' + str(i) + ': ')))
# Creamos la lista de beneficios vacía
beneficios = []
# Recorremos las listas de ingresos y gastos, calculamos la diferencia para los elementos que ocupan la misma posición y lo añadimos a la lista de beneficios.
for i in range(len(ingresos)):
    beneficios.append(ingresos[i] - gastos[i])
print(beneficios)
# Creamos la lista vacía para ver qué años ha habido beneficios
hay_beneficio = []
# Recorremos la lista de beneficios y añadimos a la lista hay_beneficio True si el beneficio es positivo y False en caso contrario
for i in range(len(beneficios)):
    hay_beneficio.append(beneficios[i] > 0)
print(hay_beneficio)
# Creamos dos listas vacías para los años con beneficios y los años con pérdidas
años_beneficios = []
años_perdidas = []
# Recorremos la lista hay_beneficio y dependiendo de si el valor es True o False añadimos el año correspondiente a la lista de años con beneficio o a la de años con pérdidas.
for i in range(len(hay_beneficio)):
    if hay_beneficio[i]:
        años_beneficios.append(años[i])
    else:
        años_perdidas.append(años[i])
print('Años con beneficios: ', años_beneficios)
print('Años con pérdidas: ', años_perdidas)


[20000.0, -5000.0, 40000.0, 25000.0]
[True, False, True, True]
Años con beneficios:  [2015, 2017, 2018]
Años con pérdidas:  [2016]

In [ ]: