連載
» 2018年05月29日 05時00分 公開

Visual Studio Codeで始めるPythonプログラミング:VS CodeでPythonプログラムを快適コーディング! (1/2)

IntelliSenseによるコード補完機能、Linterやフォーマッタなど、コード記述を快適にしてくれるVS Codeの機能を紹介。

[かわさきしんじ,Insider.NET編集部]
「Visual Studio Codeで始めるPythonプログラミング」のインデックス

連載「Visual Studio Codeで始めるPythonプログラミング」

 前回は、Visual Studio Code(以下、VS Code)でPythonするために必要となるPython拡張機能のインストールを中心に話をした。今回は、これを利用して、実際にPythonコードを記述、実行する方法を見ていこう。

 なお、本稿ではWindows版のVS Code(64ビット版)を使用し、venvモジュールを用いて作成した仮想環境を使用している。

ファイル操作はここで:[エクスプローラー]ビュー

 前回も簡単に述べたが、VS Codeでは「フォルダを開いて、そこに含まれるファイルをエディタと呼ばれる領域(タブ)で編集する」のが基本だ(単一ファイルを開いて、編集することも可能ではある)。ここではvscpython_02フォルダを開いている。開いたフォルダに含まれるファイル群はサイドバーと呼ばれる領域に表示される[エクスプローラー]ビューに表示される。

VS Codeでvscpython_02フォルダを開いたところ VS Codeでvscpython_02フォルダを開いたところ

 [エクスプローラー]ビューでは、ファイルを新規に作成したり、既存のファイルを削除したり、ワークスペース内の別フォルダに移動したりといった操作が行える。ここでは、開いているフォルダにマウスカーソルを合わせると表示されるアイコンの中から[新しいファイル]を選択して、「main.py」というファイルを作成する。

[新しいファイル]アイコンをクリック
[新しいファイル]アイコンをクリック
ファイル名を入力
ファイル名を入力

ファイルの新規作成


 [エクスプローラー]ビューでのファイル操作は直観的に行えるので、特に説明はしないが、新規にファイルやフォルダを作成するときに、何らかのフォルダが選択状態にあると、その直下に作成されるので、最初は注意しよう(とはいっても、作成後にファイルをドラッグ&ドロップすれば移動できる)。

IntelliSenseを使って快適コーディング

 ファイルを作成すると、「エディタ」にそのファイルが開かれる。ここに取りあえずコードを入力してみよう。例えば、何らかのモジュールやパッケージをインポートするために、「i」と入力してみる。

IntelliSenseにより、入力候補が表示される IntelliSenseにより、入力候補が表示される

 これだけで、入力候補がズラズラと表示される。これがIntelliSenseによるコード補完機能だ。さらに続けて「m」と入力すれば、候補の絞り込みが行われる。

絞り込まれた入力候補 絞り込まれた入力候補

 この時点で、[Tab]キーや[Enter]キーを押せば、カーソルが合っている項目(上の画像では「import」)が自動的に入力される。候補の中で別のものを入力したければ、矢印キーで対象を選択して[Enter]キーを押せばよい。候補としては、キーワードだけではなく、定義済みの変数や関数、標準ライブラリに含まれるモジュールやパッケージ、環境にインストール済みのモジュールやパッケージ、「コードスニペット」と呼ばれる「定型コード」なども表示される。例えば、上の候補では「if(main)」という候補はコードスニペットだ。試しにこれを選択してみると、次のようなコードが補完される。

定型コードの補完 定型コードの補完

 Pythonモジュールを記述する際には、それがimportされるのか、コマンドラインで実行対象として指定されたかによって、動作を変えることがよくある。そのために上記のようなコードを書くこともよくある。上のコードスニペットは一発でそのためのコードを補完してくれるものだ。

 IntelliSenseはスコープも考慮に入れてくれるので、アクセスできないものは候補にはならない。以下に例を示す。

変数longlongnamedvarは関数fooの外部では補完の候補とならない 変数longlongnamedvarは関数fooの外部では補完の候補とならない

 関数foo内では「longlongnamedvar」という名前の変数を定義しているが、関数外ではこれにはアクセスできないので、上の画像では候補にはこれが含まれないようになっている。このように、気を利かせて、補完の候補を表示してくれるのが、IntelliSenseのよいところだ。何文字かを入力して、候補を選択して、[Tab]キーもしくは[Enter]キーを押して補完する形でコードを記述していくのが、VS Codeにおけるコーディングの基本だ。

 候補が自動で表示されないときには、[Ctrl]+[スペース]キーを押すと、入力候補が一覧表示されるので覚えておこう。

[コラム]通常のエディタとプレビューエディタ

 注意しておきたいのは、[エクスプローラー]ビューでファイルをシングルクリックするときと、ダブルクリックするときで開かれるエディタが異なる点だ。シングルクリックすると、「プレビューエディタ」にそのファイルの内容が表示される。これは名前の通り、ファイルの内容を「プレビュー」するためのエディタであり、プレビューエディタにあるファイルの内容を表示しているときに、[エクスプローラー]ビューで別のファイルをシングルクリックすると、プレビューエディタにはそのファイルの内容が表示される。ファイルの内容を次々に参照したい場合には便利に使える。

 一方、[エクスプローラー]ビューでファイルをダブルクリックすると、そのファイルは通常のエディタに表示される。こちらは本腰を入れて、ファイルの内容を参照したり、実際にファイルの編集を行ったりするためのエディタといえる。両者はタブに表示されるファイル名がイタリック体(プレビューエディタ)か通常書体(通常のエディタ)かで見分けられる。

プレビューエディタ(左)と通常のエディタ(右) プレビューエディタ(左)と通常のエディタ(右)

 ファイルの内容を次々にブラウズしながら、編集しようと思っているファイルが見つかったら、プレビューエディタのタブをダブルクリックしたり、プレビューエディタに何か文字を入力したりすれば、プレビューエディタが通常のエディタに変化することも覚えておこう。

 また、エディタは最大で3つのグループに論理的に分割できる。これを「エディタグループ」と呼ぶ。エディタやプレビューエディタ、エディタグループについては、「Visual Studio Codeの使い方、基本の『キ』」で詳しく解説をしているので、そちらも参照してほしい。


IntelliSenseをカスタマイズして、さらに便利に!

 Python拡張機能をインストールしているときには、settings.jsonファイルでPythonのIntelliSenseを(若干ではあるが)カスタマイズできる。これらを設定することで、コーディングがより快適になるかもしれないので、幾つか紹介しておこう。

 まず、VS Codeでは、コード入力時に開きかっこを入力すれば、閉じかっこも自動で入力してくれる。これは普通のことだ。

かっこの自動補完 かっこの自動補完

 そうではなく、VS Codeが「関数名を補完したとき」に自動的に関数名に続けてかっこを補完してくれるように設定できる。これには、settings.jsonファイルでpython.autocomplete.addBrackets項目をtrueに設定するとよい。

{
  "python.autoComplete.addBrackets": true,
}


python.autoComplete.addBrackets項目の設定例

 これにより、関数名の補完時に自動的にかっこも補完してくれるようになる。以下はその例だ。「pri」まで入力したところで、[Tab]キーを押すと、かっこを含めて関数を補完してくれている。

関数名に続くかっこを自動補完 関数名に続くかっこを自動補完

 ただし、自作モジュールなどで、「from <モジュール名> import <関数名>」などのコードを書くときにも、自動的にかっこが補完されてしまうので、使うかどうかの判断は必要に応じて行うようにしよう(かっこが補完されても[Backspace]キー一発で開きかっこも閉じかっこも削除してくれるので、それほどの手間ではないだろうが、気持ちよいかどうかは別の問題だ)。

 もう1つ紹介しておこう。巨大なパッケージを利用していると、IntelliSenseが候補を表示してくれるまでに時間がかかることがある。これを避けるには、settings.jsonファイルでpython.autocomplete.preloadModule項目に、事前に補完情報を読み込んでおきたいモジュールやパッケージを記述しておくとよい。

{
  "python.autoComplete.preloadModules": ["numpy", ……]
}


python.autocomplete.preloadModule項目の設定例

 この他にも、標準的な位置ではないところにインストールしてあるパッケージに対して、IntelliSenseを有効化するための設定(python.autoComplete.extraPaths項目)などもある。詳細については、「Editing Python in VS Code」を参照のこと。

       1|2 次のページへ

Copyright© 1999-2018 Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。