手順 3: 対話型 REPL ウィンドウを使用する
前の手順:コードを記述して実行する
Visual Studio の Python 用のインタラクティブ ウィンドウによって機能豊富な REPL (読み取り、評価、出力ループ) エクスペリエンスが実現され、通常の編集、ビルド、デバッグのサイクルが大幅に短縮されます。 インタラクティブ ウィンドウは、Python のコマンド ラインの REPL エクスペリエンスのすべての機能を提供します。 これは、コマンド ラインからでは面倒な、Visual Studio エディターのソース ファイルでのコード交換も容易にします。
注意
REPL の問題については、確実に ipython
パッケージと ipykernel
パッケージをインストールしてください。また、パッケージのインストールのヘルプについては、Python 環境のパッケージ タブに関する記事を参照してください。
ソリューション エクスプローラーで、プロジェクトの Python 環境 (前の図で示した Python 3.6 (32-bit) など) を右クリックし、[インタラクティブ ウィンドウを開く] を選択して、インタラクティブ ウィンドウを開きます。 別の方法で、Visual Studio のメイン メニューから [表示]>[その他のウィンドウ]>[Python インタラクティブ ウィンドウ] を選択することもできます。
インタラクティブ ウィンドウが、エディターの下に開き、標準の >>> Python REPL プロンプトが表示されます。 [環境] ドロップダウン リストを使用して、操作する特定のインタープリターを選択できます。 インタラクティブ ウィンドウを大きくするには、次の図に示すように、2 つのウィンドウ間の区切りをドラッグします。
ヒント
Visual Studio のすべてのウィンドウのサイズは、境界の区切りをドラッグしてサイズ変更できます。 Visual Studio のフレームから個々にウィンドウをドラッグして、フレーム内で自由に再配置することも可能です。 詳細については、「ウィンドウ レイアウトをカスタマイズする」をご覧ください。
ステートメント (
print("Hello, Visual Studio")
など) や式 (123/456
など) をいくつか入力して、すぐに表示される結果を確認します。複数行のステートメント (関数定義など) の記述を開始すると、インタラクティブ ウィンドウには、行の継続を示す Python の ... プロンプトが表示されます。 コマンド ライン REPL とは異なり、これによって自動インデントが提供されます。
Shift+Enter
を押して、新しい ... 行を追加することができます。インタラクティブ ウィンドウでは、入力内容がすべて履歴に残されます。複数行の履歴項目により、コマンドライン REPL の機能が強化されています。 たとえば、関数を行ごとに再作成するのではなく、
f
関数の定義全体を単一ユニットとして呼び出して、名前をmake_double
に変更することが簡単にできます。Visual Studio では、エディター ウィンドウからインタラクティブ ウィンドウに、複数のコード行を送信できます。 この機能を使用すると、ソース ファイル内のコードを維持し、その選択されたフラグメントをインタラクティブ ウィンドウに簡単に送信できます。 それから、プログラム全体を実行するのではなく、迅速な REPL 環境でそれらのコード フラグメントを使用して作業できます。 この機能を参照するには、まず PythonApplication1.py ファイルの
for
ループを以下のコードに置き換えます。# 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'
.py ファイルの
import
、from
、およびmake_dot_string
関数のステートメントを選択します。 選択したテキストを右クリックし、 [Interactive に送信] を選択します (または Ctrl+Enter キーを押します)。 コード フラグメントはすぐにインタラクティブ ウィンドウに貼り付けられ、実行されます。 コードでは関数が定義されているため、数回呼び出すことですばやくその関数をテストすることができます。ヒント
エディターで選択を行わずにCtrl+Enter キーを押すと、インタラクティブ ウィンドウで現在のコード行が実行され、次の行にカーソルが自動的に配置されます。 この機能により、繰り返し Ctrl+Enter キーを押すことで、Python コマンド ラインのみでは不可能なコードのステップ実行を簡単に実行できます。 また、これでは、デバッガーを実行しなくても、また必ずしも最初からプログラムを開始しなくてもコードをステップ実行できます。
また、下のスニペットなどの任意のソースからインタラクティブ ウィンドウへ、複数行のコードをコピーして貼り付けることも可能です。Python のコマンド ライン REPL でこれを実行することは困難です。 コードを貼り付けると、インタラクティブ ウィンドウでは、入力した場合と同様にそのコードが実行されます。
for i in range(360): s = make_dot_string(i) print(s)
ご覧のように、このコードは問題なく動作しますが、その出力は感動的なものではありません。
for
ループに別のステップ実効値を入れると、より余弦波のようになります。 REPL 履歴では、for ループ全体を単体として使用できます。 戻って必要な変更を加え、その後、関数を再度テストすることがます。 まず上向き矢印キーを押して、for
ループを呼び出します。 左または右の矢印を押して、コード内を移動できます (これを行うまで、上および下の矢印は履歴内を循環します)。 移動し、range
仕様をrange(0, 360, 12)
に変更します。 次いで (コードの任意の場所で) Ctrl+Enter キーを押し、ステートメント全体を再実行します。この手順を繰り返し、最適な値が見つかるまで、別のステップ設定を試します。 たとえば、
range(0, 1800, 12)
のように範囲を長くして波を繰り返すことも可能です。インタラクティブ ウィンドウに記述したコードに問題がなければ、それを選択します。 次に、コードを右クリックして [コードのコピー] を選択します (Ctrl+Shift+C キー)。 最後に、選択したコードをエディターに貼り付けます。 Visual Studio のこの特殊機能が、任意の出力や
>>>
と...
のプロンプトを自動的に除外することに注目してください。 たとえば、次の図は、プロンプトと出力を含む選択に対し、[コードのコピー] コマンドを使用しているところを示しています。エディターに貼り付けると、コードのみが得られます。
for i in range(0, 1800, 12): s = make_dot_string(i) print(s)
プロンプトや出力など、インタラクティブ ウィンドウの内容を正確にコピーするには、標準の [コピー] コマンドを使用します。
ここでは、インタラクティブ ウィンドウの迅速な REPL 環境を使用して、小規模なコードの詳細を処理し、そのコードをプロジェクトのソース ファイルに追加しました。 Ctrl+F5 キー (または [デバッグ]>[デバッグなしで開始] ) を使用してコードを今再実行した場合、期待した正確な結果を得られます。