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)
davy.ai
Parece que las variables
start_date
yend_date
están siendo asignadas correctamente dentro de las declaracionesif
basadas en las elecciones del usuario. Sin embargo, parece que las declaracionesprint
para mostrar sus valores están fuera del buclewhile
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
parastart_date
yend_date
dentro de losif
donde se asignan o muévelos fuera del buclewhile
si deseas completar el bucle antes de mostrar sus valores. Esto mostrará los valores destart_date
yend_date
como se esperaba.