Passaggio 3: Usare la finestra interattiva REPL
Passaggio precedente: Scrivere ed eseguire codice
La finestra interattiva di Visual Studio per Python offre un'esperienza REPL (Read-Evaluate-Print-Loop) avanzata che riduce notevolmente il normale ciclo di modifica-compilazione-debug. La finestra interattiva offre tutte le funzionalità dell'esperienza REPL della riga di comando di Python. Semplifica anche lo scambio di codice con i file di origine nell'editor di Visual Studio, altrimenti complesso con la riga di comando.
Nota
Per i problemi relativi a REPL, verificare che i pacchetti ipython
e ipykernel
siano installati. Per informazioni sull'installazione dei pacchetti, vedere la scheda Packages (Pacchetti) in Python Environments (Ambienti Python).
Aprire la finestra interattiva facendo clic con il pulsante destro del mouse sull'ambiente Python del progetto in Esplora soluzioni (ad esempio Python 3.6 (32 bit) illustrato in un elemento grafico precedente e selezionando Apri finestra interattiva. Un altro modo consiste nel selezionare Visualizza>altre finestre interattive Di Windows>Python dal menu principale di Visual Studio.
La finestra interattiva si apre sotto l'editor con il prompt REPL standard >>> di Python. L'elenco a discesa Ambiente consente di selezionare un interprete specifico da utilizzare. Se vuoi ingrandire la finestra interattiva, puoi trascinare il separatore tra le due finestre, come illustrato nell'immagine seguente:
Suggerimento
In Visual Studio è possibile ridimensionare tutte le finestre trascinando i separatori confinanti. È anche possibile trascinare le finestre in modo indipendente dal frame di Visual Studio e ridisporle come si vuole all'interno della cornice. Per altre informazioni, vedere Personalizzare il layout delle finestre.
Immettere alcune istruzioni (ad esempio
print("Hello, Visual Studio")
) ed espressioni (ad esempio123/456
) per visualizzare i risultati immediati:Quando si inizia a scrivere un'istruzione su più righe (ad esempio una definizione di funzione), la finestra interattiva mostra il prompt di Python per continuare le righe. A differenza della riga di comando REPL, questo fornirà un rientro automatico. È possibile aggiungere una nuova riga ... premendo
Shift+Enter
:La finestra interattiva offre una cronologia completa di tutti gli elementi immessi e migliora la riga di comando REPL con elementi della cronologia su più righe. Ad esempio, è possibile chiamare facilmente l'intera definizione della funzione
f
come singola unità e modificare in modo semplice il nome inmake_double
, invece di dover ricreare la funzione riga per riga.Visual Studio può inviare più righe di codice da una finestra dell'editor alla finestra interattiva. Questa funzionalità consente di gestire il codice in un file di origine e di inviare facilmente i frammenti scelti alla finestra interattiva. È quindi possibile usare questi frammenti di codice nell'ambiente REPL rapido piuttosto che dover eseguire l'intero programma. Per visualizzare questa funzionalità, sostituire prima il
for
ciclo nel file PythonApplication1.py con il codice seguente:# 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'
Selezionare le
import
istruzioni della funzione ,from
emake_dot_string
nel file con estensione py . Fare clic con il pulsante destro del mouse sul testo selezionato e scegliere Invia a interattivo (o premere CTRL+INVIO). Il frammento di codice viene incollato immediatamente nella finestra interattiva ed eseguito. Poiché il codice ha definito una funzione, è possibile testare rapidamente tale funzione chiamandola alcune volte:Suggerimento
L'uso di CTRL+INVIO nell'editor senza una selezione esegue la riga di codice corrente nella finestra interattiva e posiziona automaticamente il cursore nella riga successiva. Con questa funzionalità, se si preme ripetutamente CTRL+INVIO si ottiene un modo pratico per esaminare il codice che non è possibile eseguire con solo la riga di comando di Python. Consente anche di esaminare il codice senza eseguire il debugger e senza avviare necessariamente il programma dall'inizio.
È anche possibile copiare e incollare più righe di codice nella finestra interattiva da qualsiasi origine, ad esempio il frammento di codice seguente, che è difficile da eseguire con la riga di comando di Python REPL. Quando incollato, la finestra interattiva esegue il codice come se fosse stato digitato in:
for i in range(360): s = make_dot_string(i) print(s)
Come si può notare, questo codice funziona correttamente, ma l'output non è stimolante. Un valore passaggio diverso nel ciclo
for
potrebbe visualizzare più dell'onda coseno. L'intero ciclo for è disponibile nella cronologia REPL come singola unità. È possibile tornare indietro e apportare le modifiche desiderate e quindi testare di nuovo la funzione. Premere la freccia in su per chiamare il ciclofor
. È possibile spostarsi nel codice premendo le frecce sinistra o destra (fino a quando non si esegue questa operazione, le frecce su e giù continuano a scorrere la cronologia). Individuare e modificare la specificarange
inrange(0, 360, 12)
. Premere QUINDI CTRL+INVIO in un punto qualsiasi del codice per eseguire di nuovo l'intera istruzione:Ripetere il processo per sperimentare con impostazioni diverse i passaggi fino a individuare un valore desiderato. È anche possibile rendere la ripetizione dell'onda aumentando l'intervallo, ad esempio,
range(0, 1800, 12)
.Quando si è soddisfatti del codice scritto nella finestra interattiva, selezionarlo. Fare quindi clic con il pulsante destro del mouse sul codice e scegliere Copia codice (CTRL+MAIUSC+C). Infine, incollare il codice selezionato nell'editor. Si noti che questa funzionalità speciale di Visual Studio omette automaticamente qualsiasi output, insieme alle
>>>
richieste e...
. Ad esempio, nell'immagine seguente viene illustrato l'uso del comando Copia codice su una selezione che include prompt e output:Quando si procede con la funzione incolla nell'editor, si ottiene solo il codice:
for i in range(0, 1800, 12): s = make_dot_string(i) print(s)
Se si vuole copiare il contenuto esatto della finestra interattiva, inclusi i prompt e l'output, usare il comando standard Copia .
Ciò che è stato fatto è usare l'ambiente REPL rapido della finestra interattiva per elaborare i dettagli di una piccola parte di codice, quindi è stato aggiunto facilmente tale codice al file di origine del progetto. Quando si esegue nuovamente il codice con CTRL+F5 (o Debug>Avvia senza eseguire debug), viene visualizzato il risultato previsto.