Paso 3: Usar la ventana interactiva de REPL

Paso anterior: Escribir y ejecutar código

La ventana interactiva de Visual Studio para Python proporciona una experiencia de lectura-evaluación-impresión-repetición (REPL) que reduce considerablemente el ciclo habitual de edición-compilación-depuración. La ventana interactiva proporciona todas las funciones de la experiencia de REPL de la línea de comandos de Python. También resulta fácil intercambiar el código con archivos de código fuente en el editor de Visual Studio, que en otros casos es complicado con la línea de comandos.

Nota

Si tiene problemas con REPL, asegúrese de tener instalados los paquetes ipython y ipykernel. Si necesita instalar paquetes, consulte la pestaña de los paquetes de los entornos de Python.

  1. Abra la ventana interactiva haciendo clic con el botón derecho en el entorno de Python del proyecto en el Explorador de soluciones (por ejemplo, Python 3.6 (32 bits) como se muestra en un gráfico anterior) y seleccione Abrir ventana interactiva. Otra forma es seleccionar Ver>Otras ventanas>Ventanas interactivas de Python en el menú principal de Visual Studio.

  2. Se abre la ventana interactiva debajo del editor, con el símbolo estándar del sistema de REPL de Python >>>. La lista desplegable Plataforma permite seleccionar un intérprete específico con el que trabajar. Si quiere agrandar la ventana interactiva, puede arrastrar el separador entre las dos ventanas, tal y como se muestra en la imagen siguiente:

    Python interactive window and dragging to resize

    Sugerencia

    Puede cambiar el tamaño de todas las ventanas en Visual Studio si arrastra los separadores de los bordes. También puede arrastrar las ventanas independientemente del marco de Visual Studio y reorganizarlas como prefiera dentro del marco. Para más información, vea Personalizar los diseños de ventana.

  3. Escriba algunas instrucciones (como print("Hello, Visual Studio")) y expresiones (como 123/456) para ver los resultados inmediatos:

    Python interactive window immediate results

  4. Al empezar a escribir una instrucción multilínea (como una definición de función), la ventana interactiva muestra el mensaje ... de Python para las líneas continuas. A diferencia de REPL de línea de comandos, esto proporciona una sangría automática. Puede agregar una nueva línea ... presionando Shift+Enter:

    Python interactive window with statement continuation

  5. La ventana interactiva proporciona un historial completo de todo lo que ha escrito y ofrece mejoras con respecto a la línea de comandos de REPL con elementos de historial multilínea. Por ejemplo, puede recuperar fácilmente la definición completa de la función f como una única unidad y cambiar el nombre con facilidad a make_double, en lugar de tener que volver a crear la función línea por línea.

  6. En Visual Studio se pueden enviar varias líneas de código desde una ventana del editor a la ventana interactiva. Esta característica permite mantener el código en un archivo de código fuente y enviar con facilidad elementos seleccionados a la ventana Interactiva. Después, puede trabajar con estos fragmentos de código en el entorno de REPL rápido en lugar de tener que ejecutar el programa completo. Para ver esta característica, reemplace el bucle for del archivo PythonApplication1.py por el código siguiente:

    # Create a string with spaces proportional to a cosine of x in degrees
    def make_dot_string(x):
        return ' ' * int(20 * cos(radians(x)) + 20) + 'o'
    
  7. Seleccione las instrucciones de función import, from y make_dot_string en el archivo .py. Haga clic con el botón derecho del texto seleccionado y elija Enviar a interactivo (o presione Ctrl+ENTRAR). El fragmento de código se pega inmediatamente en la ventana interactiva y se ejecuta. Dado que el código ha definido una función, puede probarla rápidamente si la invoca varias veces:

    Sending code to the interactive window and testing it

    Sugerencia

    Al presionar Ctrl+Entrar en el editor sin una selección se ejecuta la línea de código actual en la ventana interactiva y se coloca automáticamente el símbolo de intercalación en la línea siguiente. Con esta característica, puede presionar varias veces Ctrl+Entrar para recorrer el código, algo que no era posible hacer solo con la línea de comandos de Python. También permite recorrer el código sin ejecutar el depurador y sin necesidad de iniciar el programa desde el principio.

  8. También puede copiar y pegar varias líneas de código en la ventana interactiva desde cualquier origen, como el fragmento de código siguiente, lo que es difícil de hacer con el REPL de la línea de comandos de Python. Cuando se pega, la ventana interactiva ejecuta el código como si se hubiera escrito:

    for i in range(360):
        s = make_dot_string(i)
        print(s)
    

    Pasting multiple lines of code using Sending Interactive

  9. Como puede ver, este código funciona correctamente, pero su salida no es interesante. Un valor de paso diferente en el bucle for mostraría más cantidad de la onda del coseno. Todo el bucle for está disponible en el historial de REPL como una sola unidad. Puede volver atrás y realizar los cambios que quiera y, a continuación, probar la función de nuevo. Presione la tecla Flecha arriba para recuperar primero el bucle for. Puede pulsar las teclas de flecha derecha y flecha izquierda para desplazarse por el código (hasta que lo haga, estas teclas seguirán moviendo el foco por el historial). Vaya a la especificación range y cámbiela por range(0, 360, 12). Después, presione Ctrl+Entrar en cualquier lugar del código para volver a ejecutar la instrucción completa:

    Editing a previous statement in the interactive window

  10. Repita el proceso para experimentar con valores de paso diferentes hasta que encuentre el que más le guste. También puede hacer que se repita la onda si amplía el intervalo, por ejemplo, range(0, 1800, 12).

  11. Cuando esté satisfecho con el código que escribió en la ventana interactiva, selecciónelo. A continuación, haga clic con el botón derecho en el código y elija Copiar código (Ctrl+Mayús+C). Por último, pegue el código seleccionado en el editor. Observe que esta característica especial de Visual Studio omite automáticamente cualquier salida junto con los símbolos >>> y .... Por ejemplo, en la imagen siguiente se muestra el uso del comando Copiar código en una selección que incluye los símbolos y la salida:

    Interactive window copy code command on a selection with prompts and output

    Al pegar en el editor, solamente se obtiene el código:

    for i in range(0, 1800, 12):
        s = make_dot_string(i)
        print(s)
    

    Si quiere copiar el contenido exacto de la ventana interactiva, incluidos los símbolos y la salida, use el comando Copiar estándar.

  12. Lo que acaba de hacer es usar el entorno de REPL rápido de la ventana interactiva para elaborar los detalles de un pequeño fragmento de código y después lo ha agregado cómodamente al archivo de código fuente del proyecto. Si ahora vuelve a ejecutar el código con Ctrl+F5 (o Depurar>Iniciar sin depurar), verá los resultados exactos que quería.

Paso siguiente

Profundizar un poco más