Étape 3 : Utiliser la fenêtre REPL interactive

Étape précédente : Écrire et exécuter du code

La Fenêtre interactive de Visual Studio pour Python offre une expérience REPL (read-evaluate-print-loop) intéressante, qui réduit considérablement le cycle habituel de modification-génération-débogage. La Fenêtre interactive fournit toutes les fonctionnalités de l’expérience REPL en ligne de commande de Python. Elle facilite également l’échange de code avec des fichiers sources dans l’éditeur Visual Studio, qui sans cela serait fastidieux avec la ligne de commande.

Notes

Pour les problèmes liés à REPL, vérifiez que les packages ipython et ipykernel sont installés. Pour obtenir de l’aide sur l’installation des packages, consultez Onglet packages, Environnements Python.

  1. Ouvrez la Fenêtre interactive en cliquant avec le bouton droit sur l’environnement Python du projet dans l’Explorateur de solutions (par exemple Python 3.6 (32 bits), qui figure dans une illustration précédente), puis en sélectionnant Ouvrir la Fenêtre Interactive. Sinon, vous pouvez sélectionner Affichage>Autres fenêtres>Fenêtres interactives Python dans le menu principal de Visual Studio.

  2. La Fenêtre interactive s’ouvre en dessous de l’éditeur avec l’invite REPL Python standard >>>. La liste déroulante Environnement vous permet de sélectionner un interpréteur spécifique à utiliser. Si vous souhaitez agrandir la Fenêtre interactive, vous pouvez faire glisser le séparateur entre les deux fenêtres, comme indiqué dans l’image ci-dessous :

    Python interactive window and dragging to resize

    Astuce

    Vous pouvez redimensionner toutes les autres fenêtres de Visual Studio en faisant glisser les séparateurs adjacents. Vous pouvez également faire glisser des fenêtres indépendamment du cadre principal de Visual Studio et les réorganiser comme vous le souhaitez dans ce cadre. Pour plus d’informations, consultez Personnaliser les dispositions de fenêtres.

  3. Entrez quelques instructions comme print("Hello, Visual Studio"), et des expressions comme 123/456 pour voir les résultats immédiats :

    Python interactive window immediate results

  4. Quand vous commencez à écrire une instruction multiligne, (par exemple une définition de fonction), la Fenêtre interactive affiche l’invite ... de Python pour continuer les lignes. Contrairement à l’environnement en ligne de commande REPL, ceci entraînera une mise en retrait automatique. Vous pouvez ajouter une nouvelle ligne ... en appuyant sur Shift+Enter :

    Python interactive window with statement continuation

  5. La Fenêtre interactive fournit un historique complet de tout ce que vous avez entré et améliore l’environnement REPL en ligne de commande avec des éléments d’historique multilignes. Par exemple, vous pouvez facilement rappeler l’ensemble de la définition de la fonction f ci-dessus comme un tout, puis la renommer make_double, sans avoir à recréer la fonction ligne par ligne.

  6. Visual Studio peut envoyer plusieurs lignes de code depuis la fenêtre d’un éditeur vers la Fenêtre interactive. Cette fonctionnalité vous permet de conserver le code dans un fichier source et d’envoyer facilement les fragments choisis vers la Fenêtre interactive. Vous pouvez ensuite travailler avec ces fragments de code dans l’environnement rapide REPL au lieu d’avoir à exécuter la totalité du programme. Pour voir cette fonctionnalité, remplacez d’abord la boucle for dans le fichier PythonApplication1.py par le code ci-dessous :

    # 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. Sélectionnez les instructions de fonction import, fromet make_dot_string dans le fichier .py. Cliquez avec le bouton droit sur le texte sélectionné et choisissez Envoyer à Interactive (ou appuyez sur Ctrl+Entrée). Le fragment de code est immédiatement collé dans la Fenêtre interactive, puis est exécuté. Étant donné que le code a défini une fonction, vous pouvez rapidement tester cette fonction en l’appelant à plusieurs reprises :

    Sending code to the interactive window and testing it

    Astuce

    L’utilisation de Ctrl+Entrée dans l’éditeur sans sélection entraîne l’exécution de la ligne de code active dans la Fenêtre interactive et le placement automatique du point d’insertion sur la ligne suivante. Avec cette fonctionnalité, l’utilisation répétée de Ctrl+Entrée offre un moyen pratique de parcourir votre code pas à pas, ce qui n’est pas possible avec la ligne de commande Python uniquement. Elle vous permet également de parcourir votre code pas à pas sans exécuter le débogueur et sans nécessairement démarrer votre programme à partir du début.

  8. Vous pouvez également copier et coller plusieurs lignes de code dans la Fenêtre interactive à partir de n’importe quelle source, par exemple l’extrait de code ci-dessous, ce qui est difficile à faire avec l’environnement REPL en ligne de commande de Python. Une fois le code collé, la Fenêtre interactive l’exécute comme si vous l’aviez tapé dedans :

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

    Pasting multiple lines of code using Sending Interactive

  9. Comme vous pouvez le voir, ce code fonctionne correctement, mais sa sortie n’est pas intéressante. Une valeur différente pour le pas de la boucle for montrerait une partie plus importante de la courbe de la fonction cosinus. L’ensemble de la boucle for est disponible dans l’historique REPL sous forme d’une seule unité. Vous pouvez revenir en arrière et apporter les modifications souhaitées, puis tester à nouveau la fonction. Appuyez sur la flèche vers le haut pour d’abord rappeler la boucle for. Vous pouvez parcourir le code en appuyant sur les flèches gauche ou droite (tant que vous le faites, les flèches haut et bas continuent de boucler dans l’historique). Accédez à la spécification range et changez-la en range(0, 360, 12). Appuyez ensuite sur Ctrl+Entrée, n’importe où dans le code, pour réexécuter l’intégralité de l’instruction :

    Editing a previous statement in the interactive window

  10. Répétez le processus pour faire des essais avec différentes valeurs de pas jusqu’à trouver la valeur que vous préférez. Vous pouvez également faire en sorte que la courbe se répète en augmentant la plage, par exemple range(0, 1800, 12).

  11. Lorsque vous êtes satisfait du code que vous avez écrit dans la Fenêtre interactive, sélectionnez-le. Ensuite, cliquez avec le bouton droit sur le code et choisissez Copier le code (Ctrl+Maj+C). Enfin, collez le code sélectionné dans l’éditeur. Notez que cette fonctionnalité spéciale de Visual Studio ne produit aucune sortie, ni les invites >>> et .... Par exemple, l’image ci-dessous montre l’utilisation de la commande Copier le code sur une sélection qui inclut des invites et une sortie :

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

    Quand vous collez dans l’éditeur, vous obtenez seulement le code :

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

    Si vous souhaitez copier le contenu exact de la Fenêtre interactive, notamment les invites et la sortie, utilisez la commande standard Copier.

  12. Vous venez d’utiliser l’environnement REPL rapide de la Fenêtre interactive pour travailler sur les détails d’un petit morceau de code, puis vous avez ajouté ce code au fichier source de votre projet. Désormais, quand vous réexécutez le code avec Ctrl+F5 (ou Déboguer>Exécuter sans débogage), vous voyez exactement les résultats souhaités.

Étape suivante

Approfondir la question