WINDOWSや現在のMAC環境だと別途インストールする必要がありますが、Linuxの場合だとインストール直後からPythonを使用できます。
Pythonにはバージョンが存在していますが、サポート機関が短いものとLTSのように長いものが存在します。LTSの後に通常のバージョンが出ている場合、Pythonのバージョンも古くなっているので少し前のものにっています。
Pythonのバージョンの確認する場合、ターミナルを開いて
python3 --version
とBASHのコマンドを入力すると
のようにインストール済みのPythonのバージョンを確認することができます。
Pythonをターミナルで使用する際には
python3
と入力するとPythonの入力モードになるので、
のように入力が終わると
>>>
のようにBASHの入力とは異なる状態になります。PythonからBASHに戻るときには
quit()
を使用しますが、実際に入力すると、
のように
>
の状態に戻ります。ちなみに、Python起動時にBASHのコマンドを入力するとエラーになるので、viを使う場合には、BASHが使用でいる状態にしておく必要があります。
viを使う
Linuxではターミナル上で動作するテキストエディタのviが用意されているのですが、BASHの入力ができる状態で、
のように
vi ファイル名
と入力すると
のようにviが立ち上がります。viは、
- i : 文字の入力
- : : コマンド入力
- ESC : モードのキャンセル
になりますが、iキーを使うと挿入と言う表示に変わるので
のようにコードを打ち込むことができます。コードを打ち込んだあとは、入力モードから出る必要があるので、ESCキーを押して
の状態にして、コマンドのwを使って上書きします。
viは、ファイル名を指定して実行した場合には、ファイルが生成されているので、wコマンドだけで上書き保存ができるので、
の画像のように
:w
のようにすると上書きされます。
ターミナル
現在は、Lubuntu 22.04 LTSを使用しているのですが、実装されているターミナルは
- 上下分割
- 左右分割
- タブ表示
に対応しているので、
のような2画面表示ができます。そのため、viとターミナルを同時に表示して作業が行えます。とりあえず、コードを
のように書いて、:wで保存をして、ターミナル側でカレントディレクトリに移動して(と言っても今回はホームフォルダーですが...。)
ls
と入力すると
とコマンドを入力すると
のようにコードが実行されます。乱数を使っているので、その都度異なる数値が出ていますが、randintを使うと整数を取得できるので、こうした処理が行えます。
ターミナルの状態は
のようになっていますが、Luinuxだとインストール直後からこのような形でPythonのプログラミングが行えるようになています。
IDLE
WINDOW版だとインストールする段階でTcl/Tkと一緒にインストールすることができますが、LinuxだとIDLEは別途インストールする必要があります。
また、Tkについても未実装ですから、tkもapt-getでインストールする必要があります。MACも同様にPython環境を構築する際には、
- Tk
- IDLE
は別途インストールする必要がりますが、Pythonの公式で使用できる統合開発環境を使用することができます。
IDELを立ち上げると、
のようなターミナルのような画面が出ますが、
のようにターミナルと同じよに対話型の入力が行えます。
ここで新規作成を選択すると、テキストエディタが開くので、
のようにコードを入力して作業をすることができます。コードの入力後にファイルの保存をすると、 【F5】キー でコードを実行することができます。実際に実行してみると
のような感じになりますが、今回はグローバル変数を参照するだけの繰り返しと内部で乱数の更新ヲするものを用意しているので
のような違いが生じています。
Linuxでは、TkやIDLEはインストールされていませんから、TkinterやTurtleのような標準ライブラリを最初から使用できるわけではありませんが、CUIで動作するコードの実行だと最初から行えるので、組み込み関数と標準ライブラリを使用したコーディングが行えるようになっています。
対話型
Pythonをターミナルで使用した際には、数値や文字を入れるとその文字列や値が表示され、計算式を使用した際にも同様にその値が算出されます。
今回は、標準ライブラリの
- math
- random
を読み込んで使用していますが、ターミナルの作業では、読み込んだライブラリは、
- quit()でPythonを終了する
- ターミナルを閉じる
まで利用できます。また、今回は、forを使っていますが、この構文は、ブロック内の処理を行うものなので、他の言語だと{}のようなスコープの表記をしてその中に反復する内容を記述するような仕様になっています。
こうしたブロックを使った処理も実行できるおですが、関数やクラスを宣言した場合、呼び出す前に記述を行っておけば、ターミナル上でも登録した関数を呼び出して使用することができます。
この場合、コードを保存しているわけではないので、次に同じ処理をしようと思った場合に、もう一度コードを悪化なくてはなりませんが、そうならないようにするために、viなどのコードエディタが存在しているわけです。
エディタを使用した場合には、ファイルとしてデータの保存ができるので、ターミナル上で記述した内容を実行するのとは異なり、ファイルを実行売ればいつでも同じコードを実行できるので、通常は、エディタを使用してコードを書いて保存することになります。
ターミナルを使用した場合、簡素なコードの記述とテストを行うことが可能ですが、ユーザー関数なのど自作の処理を実装したモノを使用する際にはモジュールの記述を最初に行ってからコードを書くことになるので、対話型だと作業量が増えるので、通常はテキストエディタで記述を行ってファイルとして保存をしてから実行することになります。
Pythonとバージョン
Pythonのバージョンですが、安定している条件だと新しいものを選択したほうがいいです。ただし、仕様を確認しておかしいようだとFIXを行う必要が出てきますが、新しいバージョンでは、CPythonの実行速度が高速になっているので、Nunpyなどの速度も向上しているので、配列を使うときの速度は古いバージョンよりも速度が出ます。
また、注意したいのはサポート対象外のバージョンになりますが、2.7系だけでなく3.6系もEOLになっています。
3.7も今年の6/27でEOLですから3.8系(これが来年EOLになります。)以降を使うことになります。
Linuxのディストリビューションは新しいものをインストールするとEOL扱いのPythonは入っていないので、2.7系のPythonは存在しないのですが、リリース時に存在するバージョンのPythonが使用されています。その為、Ubunt 23.04では、Python 3.11が最初から使用できます。
ちなみに、Python 3.11は2027年の10月がEOLですから長期間しようすることができます。