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.

declaración elif no alcanzada en el script de Python

En el siguiente código, la declaración if se alcanza y se ejecuta correctamente. Sin embargo, la declaración elif parece no tener efecto. Cuando se ejecuta el script y se cumplen las condiciones para la declaración elif, no sucede nada y cuando presiono el botón de retorno dos veces, el script continúa omitiendo por completo la declaración elif.

Mi código:

    print("Si desea nombrar esta ventana, presione 1; si desea describirla, presione 2")
    if input() == "1":
        print("Ingrese el título de esta ventana:")
        current_window_title = input()
        print("¿También desea describir esta ventana? P.D: Puede hacerlo más tarde.") 
        if input().lower() == "yes":
            print("Ingrese la descripción de esta ventana:")
            current_window_description = input()
        else:
            current_window_description = "Ninguna"
    elif input() == "2":
        print("Ingrese la descripción de esta ventana:")
        current_window_description = input()
        print("¿También desea darle un título a esta ventana? P.D: Puede hacerlo más tarde.")
        if input().lower() == "yes":
            print("Ingrese el título de esta ventana:")
            current_window_title = input()
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema con este código es que la función input() se llama dos veces. Una vez para la declaración if y otra vez para la declaración elif. Cuando el usuario ingresa “2” para la segunda pregunta, la declaración elif no se alcanza porque la función input() ya se llamó y recibió la entrada para la declaración if. Por lo tanto, el código debería modificarse para almacenar la respuesta del usuario a la primera pregunta en una variable y luego usar esa variable en la declaración elif.

    Aquí hay una versión actualizada del código:

    print("Si quieres nombrar esta ventana presiona 1, si quieres describirla presiona 2")
    respuesta = input()
    
    if respuesta == "1":
        print("Por favor ingresa el título de esta ventana:")
        titulo_ventana_actual = input()
        print("¿Quieres también describir esta ventana? P.D: Puedes hacerlo después.")
        if input().lower() == "sí":
            print("Por favor ingresa la descripción de esta ventana:")
            descripcion_ventana_actual = input()
        else:
            descripcion_ventana_actual = "Ninguna"
    elif respuesta == "2":
        print("Por favor ingresa la descripción de esta ventana:")
        descripcion_ventana_actual = input()
        print("¿También quieres darle un título a esta ventana? P.D: Puedes hacerlo después.")
        if input().lower() == "sí":
            print("Por favor ingresa el título de esta ventana:")
            titulo_ventana_actual = input()
    

Comments are closed.