はじめに
前回までで、色々と入門記事を読みながらPythonの開発環境を整えてみました。
今回は、例のごとく先人の記事を参考にしてPythonでプログラムを実行してみるところまでやっていきます。
単語等の意味も調べながらで完全に理解していないため、まわりくどい書き方が多いです。
誤った認識等があればご指摘ください。
プログラムの動かし方
前々回の記事でPythonの公式ページから、Pythonというプログラミング言語で書くソースコードを実行するためのインタプリタ(CPythonと呼ばれるらしい)をインストールした。このCPythonのようなインタープリタやコンパイラというものを「処理系」と呼ぶらしい。
参考
ということで私の環境では処理系がCPythonのバージョン3.10というのはわかった。
しかし、実際のところどのようにプログラムを実行すればよいのかがいまいち理解できなかったのでメモがてら整理してみた。
インタラクティブモード(対話型)とスクリプトモード
まず、Pythonでプログラムを実行する際には2つの実行モードがある。
参考
インタラクティブモード(対話型)
インタラクティブモードでは対話をするように、コードを1行ずつ入力するとその都度インタープリタが記入したコードに対する結果を返してくれる。
実際にやってみる
試しにPythonのshell(インタープリタ)を使ってインタラクティブモードの処理を見てみる。
PythonのshellはスタートメニューからPython3.○○(64-bit)を起動して使用できる。
コマンドプロンプト、powershellでpython
と入力してPythonを起動しても同じことができる。
実行してみた結果が以下の画像。
>>>
の横にコードを1行記入してエンターキーを押すと次の行に実行結果が表示される。
画像でいうと赤点線枠内の1行目で「1+1」を計算するようにコードを書いたので2行目に計算結果の「2」が表示されている。
5、6行目のように変数に何かを代入する処理の場合特に何も表示はされず次の入力に進む。
このようにインタラクティブモードではすぐに結果が分かるためプログラムの一部分の動作を確認する際等に使用する。
スクリプトモード
スクリプトモードは先ほどの対話モードのように1行ずつ結果を返してもらうのではなく、コードを書いてあるソースファイルを読み込んで実行するモード。
多くの場合はこのモードを使用する。
実際にやってみる
とりあえずソースファイルが必要なようなので、試しに次のような内容のソースファイルを作ってみて実行してみる。
t1 = "test1"
t2 = "test2"
print(t1)
print(t2)
print(t1 + t2)
まず適当なところにテキストファイルを作成する。
今回はC:\Users\ユーザー名\Documents\test
に作ってみる。
フォルダを開いて右クリック
→新規作成
→テキストドキュメント
でテキストファイルを作成して名前をtest.txt
にしておく。
メモ帳でもなんでもいいのでtest.txt
を開いて先ほどのコードを書く。
上書き保存してtest.txt
をtest.py
にリネームする。
コマンドプロンプトかpowershellを起動してソースファイルを読み込んでみます。(今回はコマンドプロンプト)
コマンドプロンプトを開いたら以下のようにpython
の後ろに半角スペースを入力してソースファイルのパスを入力してエンターを押すと実行結果が表示される。
python C:\Users\ユーザー名\Documents\test\test.py
ちなみに対話モード中にソースファイルを読み込もうとpython C:\Users\ユーザー名\Documents\test\test.py
と入力してもエラーが出て読み込めないのでctrl+z
→Enter
で対話モードを終了してから入力すること。
このままだとめんどくさい
ということで実際にプログラムを2つの手法で実行してみることができました。
しかしながら毎回shellを使って直接プログラムを実行するのは今回試しにやってみましたが結構めんどくさい。しかも構文のチェック機能やコードの補完機能もないので非常に不便ということが分かった。
なのでソースコードを書いたり実行する時にはエディタやIDEを使用するのがよいようです。
私は前回VSCodeをインストールしているのでそれを使ってコードの記述、実行をやってみます。
VSCodeをつかってみる
VSCodeは前回インストールしてPythonの拡張機能もインストール済みのため、さっそく起動して使用していきます。
使い方は以下を参考にしました。
作業ディレクトリを作成する
まずは作成するソースコードを保存する作業用のディレクトリ(フォルダ)を作ります。
参考にした記事ではどちらもホームディレクトリの直下にプロジェクトのディレクトリを作っているようですが、私はホームディレクトリが汚くなるのが嫌で、パスも短く済ませられそうなのでCドライブ直下にフォルダを作成してその中に各プロジェクトの作業用ディレクトリを作っていこうと思います。
ディレクトリの作成は参考先でコマンドを使用していたので従ってやっていきます。
(エクスプローラーで作っても別にいいんじゃないかと思いましたが練習のためやってみます。)
コマンドプロンプトを起動して以下のコマンドで設定します。
cd hogehoge(ディレクトリのパス)
#現在のカレントディレクトリ(現在作業している場所)をhogehogeに設定
mkdir hogehoge
#カレントディレクトリにhogehogeというディレクトリを作成
これで以下のような構造のディレクトリを作成できました。今回はC:¥WorkSpace¥Python¥Practice
の中で作業をしていきます。
C:¥WorkSpase
└─Python
└─Practice
VSCodeで作業ディレクトリ(フォルダ)を開く
コマンドプロンプトで作成したディレクトリをVSCodeで開きます。
先ほどの画像の③と④がその作業になります。
前回VSCodeをインストールした際にPATHへの追加を行っているため、④のようにcode
という名前だけでコマンドからVSCodeを起動できました。
code
の後ろに書いてある.
はカレントディレクトリを意味しますのでカレントディレクトリをVSCodeで開くというコマンドになります。
VSCodeが起動するとこんな画面が出てきますが自分で作成したディレクトリ(フォルダ)ですので自分を信用して親フォルダの信用の項目にもチェックを入れて信用しますのボタンをクリックしましょう。
左側のエクスプローラーの欄に指定したディレクトリが表示されていれば成功です。
私はPractice
を作業フォルダに設定したのでそのように表示されています。
ソースファイルを作成する
ソースファイルを管理するディレクトリは作成出来たので、ソースファイルを作成していきます。
エクスプローラーの欄のPRACTICE
のタイトルバーにマウスカーソルを移動するとアイコンが現れるので新しいファイル
をクリックします。
テキストボックスが現れるのでソースファイルの名前を拡張子(.py)も含めて記入して、エンターキーでファイルを作成します。
今回はファイル名をhello.py
にしました。
ソースコードを書いてみる
ソースファイルを作成すると、下の画像のように作成したソースファイルのエディター画面が表示されるので、画面に次のコードを記述します。
コードの内容はprint
という機能を使ってhello,Python!
という文字列を表示させるものです。
print("hello,Python!")
記述したらファイル
→保存
(またはCtrl+s
)でソースファイルを保存します。
プログラムを実行する
ソースファイルは作成できたので実際に動かしてみます。
まず表示
→ターミナル
またはターミナル
→新しいターミナル
でターミナルを開きます。
ターミナルを開いたらpython hello.py
と入力してエンターキーを押します。
するとすぐ下にhello,Python!
と表示され、これでVSCode上でプログラムを動かすことに成功したことを確認できました。
今回はここまでとします。
次回はノートブックという機能を使用してみたいと思います。
用語メモ
shebang、シバン、シェバン
参考にした記事(私個人的にはガンマソフト様の記事が分かりやすかった)
今回の記事には出てきていませんが、今回参考にしたサイトでソースコードの最初に#!/usr/bin/env python
という記述がありました。
この部分はshebang(シバンまたはシェバン)というものらしい。
シバンはソースコードを実行する際に使用するインタープリタを指定するために記述するものとのこと。
私のようにWindows環境でPythonのバージョンも複数ではない場合、自身のみで開発を行うのであればシバンは必要ではない(そもそもWindows自体はシバンに対応しておらず、Pythonランチャで仮想的に解釈している)らしい。
しかし、ソースファイルを共有することを考えた場合、使用するバージョンをそろえるためにも記述した方がよいらしい。
使用するOSによっても扱いは異なり、MacやLinuxでは記述は必須とのこと。
また、記述の形式もOSにより異なりPython3で起動するように記述するには以下のようになる。
Windows
#! python3
Mac、Linux
#! /usr/bin/env python3
#! /usr/bin/python3
Windowsでは#! Python3
のみで動くらしいのだが、この形式ではMac、Linuxでは認識されない。逆にWindowsでは/usr/bin
というディレクトリはないが、#! /usr/bin/env python3
と書いてもPythonランチャーがうまいこと認識して機能するらしい。
スクリプトファイルの先頭の行が #! で始まっている場合は、その行はシェバン (shebang) 行として知られています。 Linux や他の Unix 系 OS はこうした行をもともとサポートしているため、それらのシステムでは、スクリプトがどのように実行されるかを示すために広く使われます。 Windows の Python ランチャは、Windows 上の Python スクリプトが同じ機能を使用できるようにし、上の例ではそれらの機能の使用法を示しています。
Python スクリプトのシェバン行を Unix-Windows 間で移植可能にするため、このランチャは、どのインタプリタが使われるかを指定するための大量の '仮想' コマンドをサポートしています。サポートされる仮想コマンドには以下のものがあります:
/usr/bin/env python
/usr/bin/python
/usr/local/bin/python
python
引用:https://docs.python.org/ja/3/using/windows.html?highlight=shebang
なので#! /usr/bin/env python3
と書いておけばMacやLinux環境で実行した際にも機能するので一般的にそう書くらしい。