これは何
Pythonコーチとして書いているブログのQiita版です。
Source: https://cyta.jp/python/b/91971
IDLEとは
Pythonの入門書などを見ますと、「まず実行環境としてIDLEを使います」という始まり方の本が(特にここ数年は)多いように感じます。
そもそもIDLEとは何かと言うと、Pythonのドキュメントによると
IDLE は Python の統合開発環境で、学習用環境です。だそうです。
「だそうです」などど言う他人事のような語尾を見て「あれ? コーチのくせにIDLEも知らないの???」と思われた方もいらっしゃるかもしれません...。
ある意味ではその通りです。日常業務でも自身のPythonの学習でもIDLEを使ったことが全くと言っていいほどありません。
それはなぜか、なぜIDLEを使わなくてもPythonが実行できるのか、というのがこの投稿の肝の部分になります。
IDLEとは(再び)
IDLEがすでにインストールされているとして、IDLEを立ち上げると、いきなりPythonのコードを入力できる状態になっていると思います。
「>>>
」という記号が行頭に出てると思うんですね。
これを専門用語では「プロンプト」と言います。
「ここにPythonのコードを打ち込んでくださいね。待ってます。」という待受け状態を表現しているものです。
「>>>
」に続けてprint("Hello, IDLE!")
と打ち込みEnterを押すと、ひとつ下の行にHello, IDLE!
と返ってくると思います。
入力後の全体の状態は下のようになると思います。
>>> print("Hello, IDLE!")
Hello, IDLE!
>>>
2行目のHello, IDLE!
は1行目のprint("Hello, IDLE!")
にPythonが応じて返したものなので行頭にプロンプト(「>>>
」)がありません。
3行目は次のPythonコードを待ってますよ、という意味で再びプロンプトが表示されています。
ちなみにこのコードの入力とそれに対する応答の繰り返しをREPL(Read, Eval, Print, Loopの略)と言います。
REPLの主語はコンピュータになります。人間の側ではないです。
コンピュータが、
- コードを読んで(Read
- その内容を評価して(Eval)
- 評価した結果を表示し(Print)
- 次のコードを待ち受ける状態(1)に戻る(Loop)
ということをするわけです。
ターミナルでPythonを実行する
ターミナルでPythonを実行するのは拍子抜けするほど簡単です。
※ Windowsではいくつかの選択肢があるのでそれはまた別の機会に書きます。
まずはターミナルを立ち上げます。
ターミナルの場合は「$
」や「%
」がプロンプトになります。(特に何も手を加えてなければ「$
」が表示されるかと思います。)
ここで注意なのが、ターミナルはPython専用ではないということです。
Python以外のたくさんのプログラミング言語やコマンドを実行できる「汎用REPL」と理解してください。
そのためここで一手間加えます。
ターミナル標準の「$
」というプロンプトに続けてpython
と打ち込みEnterを押す。
これだけです!
すると「$
」だったプロンプトがIDLEと同じ「>>>
」に変化するはずです。
ここからは基本的にIDLEの使い方で説明した内容と同じになります。
※ ターミナル上でPythonプロンプトを終了するには Ctrl+D
(Controlキーを押しながら「D」キー)を入力してください。
IDLEはターミナルを優しくしたもの
つまりIDLEでできることはすべてターミナルを使っても実行可能です。
というか、ターミナルのほうが「親」のようなイメージですね。
ターミナルでできることの中から、Pythonに関係するところだけ切り取ってまとめたものがIDLEと思っていいでしょう。
「てことは、ターミナルがあれば、IDLEは別になくても良い???」
と思われた方もいらっしゃるのではないでしょうか。
コーチ個人の感覚ではそうなります。
ではIDLEにまったく存在意義がないかというとそれは違います。
ターミナルは汎用的でなんでもできるのですが、汎用的なために扱いが難しい面があります。
代表的なのは「すべてをコマンドで打ち込む必要がある」という点です。
初心者の身からすると「全部コマンドか...」と思うと結構げんなりするものです。
こういった「実際問題、ちょっと初心者には難しいなぁ」という操作を、IDLEでは他の普通のアプリ(エクセルとか)と同じ用にマウス操作可能にします。
つまり、IDLEは初心者がPythonを実行するハードルを下げるためにより優しいインターフェイスにしたもの、と捉えればよいと思います。
Python学習の参考になれば幸いです。