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.

¿Cómo puedo ir a un punto específico en un bucle? (python)

Lo que me está costando ahora es esto. Dado que el código original es demasiado largo para escribirlo aquí, omití todos los anuncios y la cláusula elif, else de reply1, 2, 3. Quiero ver el programa volver a la línea 5: print(choice2) cuando escribo las entradas incorrectas en la línea 6: reply2 = input(). Pero el programa sigue devolviéndome print(choice1). ¿Cómo puedo resolver esto? Cualquier ayuda será muy apreciada.

while True:
    print(choice1)
    reply1 = input()
    if reply1 in pos:
        print(choice2)
        reply2 = input()
        if reply2 in pos():
            print(choice_3)
            reply3 = input()
            if reply3 in pos:
                print('Nice choice.')
        if reply1 and reply2 and reply2 in whole:
            break

    else:
        print('Wrong input. Please type again.\n')

“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en la indentación del último bloque “if”. Actualmente, solo verifica si “reply3” está en “pos” y no realiza ninguna acción si no lo está. Por lo tanto, el programa continúa ejecutando la siguiente línea, que es “if reply1 and reply2 and reply2 in whole:”, sin importar la entrada en la línea 6.

    Para resolver este problema, puedes agregar un bloque “else” al último bloque “if” y poner la acción de volver a la línea 5 dentro de él. De esta manera, si la entrada en la línea 8 no está en “pos”, ejecutará el bloque del bloque “else”, que consiste en volver a la línea 5.

    Aquí tienes el código modificado:

    while True:
        print(choice_1)
        reply1 = input()
        if reply1 in pos:
            print(choice_2)
            reply2 = input()
            if reply2 in pos():
                print(choice_3)
                reply3 = input()
                if reply3 in pos:
                    print('Buena elección.')
                if reply1 and reply2 and reply2 in whole:
                    break
            else:
                print('Entrada incorrecta. Por favor, escriba de nuevo.\n')
                # volver a la línea 5
                continue
        else:
            print('Entrada incorrecta. Por favor, escriba de nuevo.\n')
            # volver a la línea 5
            continue
    

    He añadido la instrucción “continue” para volver a la línea 5 siempre que haya una entrada incorrecta. Puedes eliminarla si deseas agregar otras acciones para entradas incorrectas.

Comments are closed.