import random
def SolicitudDatos ():
    print ("Bienvenido al simulador de inversiones")
    global nombre
    nombre = input ("¿Cómo te llamas? ")
    print ("Hola " + nombre )

    while True:
        try:
            global capital
            capital=float(input("Introduzca el capital inicial "))
            if capital>=1000 and capital<=50000:
                break
            else:
                print("Lo siento, el capital debe ser mayor que 1.000€ y menor que 50.000€")
        except ValueError:
            print("los datos introducidos no son válidos. Por favor, introduce un número")

    while True:
        try:
            global mini, maxi
            mini=float(input("Introduzca el valor mínimo de crecimiento anual: "))
            maxi=float(input("Introduzca el valor máximo de crecimiento anual: "))   
            if maxi>mini:
                break
            else:
                print("Lo siento, el valor máximo debe ser mayor que el valor mínimo")
        except ValueError:
            print("los datos introducidos no son válidos. Por favor, introduce un número")    

    while True:
        try:
            global años
            años=int(input("Introduzca el número de años de la inversión: "))   
            if años>4 and años<51:
                break
            else:
                print("Lo siento, el número de años debe ser mayor que 4 y menor que 51")
        except ValueError:
            print("los datos introducidos no son válidos. Por favor, introduce un número entero")        

def ValorFinal(mini,maxi):
    global final
    interes = random.uniform(mini,maxi)
    final = capital*(1+interes/100)
    return(final)

def Simulación(años,mini,maxi,capital):
    final_año = []
    for i in range(1000):
        ValorFinal(mini,maxi)
        suma=final
        for a in range(años-1):
            interes = random.uniform(mini,maxi)
            suma=suma*(1+interes/100)
        final_año.append(suma)
    media=sum(final_año)/float(len(final_año))
    maximo= max(final_año)
    minimo= min(final_año)
    print(nombre + ", Tras realizar 1.000 simulaciones se han obtenido los siguientes resultados:")
    print("- Importe final mínimo: ", minimo)
    print("- Importe final máximo: ", maximo)
    print("- Importe final medio: ", media)

SolicitudDatos ()

Simulación(años,mini,maxi,capital)
