es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La declaración “while true” en Python – no tomará el input como una variable para utilizar.

Estoy tratando de obtener desde cualquiera de las opciones las variables startdate y enddate para usarlas más adelante en mi programa. Pero el código no devuelve ninguna de las dos. Los valores para startdate y enddate siguen siendo los valores introducidos anteriormente y aún en memoria. ¿Alguna idea de cómo arreglarlo? Gracias.

def dateChoices():
    while True:
        print("Menú")
        print("1.Todas las fechas")
        print("2.Fechas seleccionadas")
        print("3.Salir")
        choice=int(input("Ingrese su elección:"))

        if choice==1:
            start_date = ManagerAll['Min_Date'][0]  
            end_date = ManagerAll['Max_Date'][0]   
            print("Todas las fechas seleccionadas" +str(start_date))
            return start_date, end_date
            break

        elif choice==2:
            start_date = input('Ingrese una fecha de inicio (formato YYYY-MM-DD):')
            start_date = pd.to_datetime(start_date, format='%Y-%m-%d')
            end_date = input('Ingrese una fecha fin (formato YYYY-MM-DD):')
            end_date = pd.to_datetime(end_date, format='%Y-%m-%d')
            print('La fecha de inicio seleccionada es ' +str(start_date))
            print('La fecha de fin seleccionada es ' +str(end_date))
            return start_date, end_date
            break

        elif choice==3:
            break
        else:
            print("Opción equivocada")

    print(start_date)
    print(end_date)
    print(end_date)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que las variables start_date y end_date están siendo asignadas correctamente dentro de las declaraciones if basadas en las elecciones del usuario. Sin embargo, parece que las declaraciones print para mostrar sus valores están fuera del bucle while y después de que él termina. Por lo tanto, sólo se ejecutarán si el usuario elige la opción 3 para salir del bucle.

    Para solucionarlo, mueve las declaraciones print para start_date y end_date dentro de los if donde se asignan o muévelos fuera del bucle while si deseas completar el bucle antes de mostrar sus valores. Esto mostrará los valores de start_date y end_date como se esperaba.

Comments are closed.