Pythonの開発環境構築と基礎
今回は、 PythonのインストールとHello World表示のような基本、簡単なプログラムの実装を学習します。
導入
教育に必要なツール類をインストールします。
今回は、Python本体とデバッグ等を行うVSCode(IDE、統合開発環境)をインストールします。
Pythonのインストール
まずはPython本体をインストールします。
下記サイトからインストール媒体をダウンロードし、インストールを実行します。
[blogcard url=”https://www.python.org/downloads/windows/”]
最新の安定版は、3.8.1(2019.12.22現在)です。
インストール時に注意事項が1点だけあります。
以下のサイトにも書いてあるように、
[blogcard url=”https://www.javadrive.jp/python/install/index3.html”]
以下に注意する必要があります。
- インストーラにて”Add Python PATH”の設定
- インストール後にPythonユーティリティが収容されているディレクトリへのパス追加
1.が抜けてしまうと、pythonコマンドを起動できません。
2.が抜けてしまうと、pythonのパッケージインストーラ”pip”を起動できません。pipは、機能拡張用の追加モジュールをインストールするために使用します。
VSCodeのインストールと環境設定
次に、VSCodeをインストールします。
媒体は、以下からダウンロードします。
[blogcard url=”https://code.visualstudio.com/download”]
インストーラは、User Installer、System Installer、.zip の3種類ありますが、どれでも大丈夫です。
参考までに、.zipは解凍するだけで使用できるようになります。
次に環境設定です。
VSCodeを起動し、画面左のアイコン群から”Extentions”を選択して日本語化パッケージとPythonデバッガを導入します。
上図の黄色枠線部分が”Extentions”で、追加パッケージを検索導入する機能ボタンです。
”Extentions” ボタン押下後、上図赤枠の検索ボックスに、”japan”と入力すると、日本語化パッケージが検索表示されますので、インストールを実行します。
次に、Pythonデバッガです。
先ほどと同様に、検索ボックスに”python”と入力すると、Pythonデバッガが表示されますので、インストールします。
デバッガが何種類か検索されると思いますが、Microsoft社製を選択しておきましょう。
Pythonの基本
ここでは、Pythonプログラミングに必要な基本的な知識を学習します。
学習内容は、以下となります。
- HelloWorld
- 分岐制御(if文)
- 繰り返し(Loop)
- 配列
- ファイル操作
Pythonの特徴は、以下の通りです。
- インタプリタ言語である
- デフォルトの文字コードは、UTF-8
- 同じ数のインデントが1つのブロックと認識される
- コメントの開始は、”#”
- 変数宣言に型は不要(すべてvarriant型)
- インデントなしの命令が、main関数となるイメージ
HelloWorld
まずは、HelloWorldです。
インタプリタですので、以下のようにコマンドラインからでもソース入力、実行ができます。
C:\Python>python -V Python 3.8.0 C:\Python>python Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print("Hello World!") Hello World! >>> exit()
7行目に、”print(“Hello World!”)”を入力し、8行目でコンソールに出力されています。
分岐、繰り返し
下記サンプルコードを使います。
print("hello world!")
hairetsu = [1, 2, 3, 4, 5]
hairetsu.append(10)
print(hairetsu)
for i in hairetsu:
if (i%2)==0 :
print(i)
- 1行目 先ほどの”hello world!”
- 3行目 配列への値設定
- 4行目 配列への値追加
- 5行目 配列の値表示
- 7行目 配列からの値取得Loop
- 8行目 配列から取得した値(i)の剰余から偶数判定
- 9行目 偶数時にコンソール表示
VSCodeで表示すると、以下のようになり、画面下のデバッグコンソールに出力結果が表示されます。
VSCodeでのコード入力は、以下のように行います。
- ファイルメニューから”新規作成”を選択してCtrl+Sを押下
- 拡張子を.pyで保存
- コード入力
- F5キー押下し、その後Enterキー押下
応用編
実業務でよく使う以下の機能を学習します。
- ディクショナリ
- クラス
- 例外
- 継承
メモリー付き電卓を例に、学習していきましょう。
今回作成するプログラムをクラス図で表現すると、以下のようになります。
クラスMemoryには、メモリー関連の機能を実装しておきます。
クラスCalculatorは、計算関連の機能(calcメソッドのみ)を実装します。
計算機能としては、加算(+)と減算(-)のみとします。
ソースコードは、以下のようになります。
class Memory():
memoryval=int(0)
def Mplus(self,val):
self.memoryval+=int(val)
def Mminus(self,val):
self.memoryval-=int(val)
def Mclear(self):
self.memoryval=int(0)
def Mr(self):
return self.memoryval
class Calculator(Memory):
value = 0
command = { '+':0 ,'-':1 ,'=':2 ,'m+':3 ,'m-':4 ,'mc':5 ,'mr':6 ,'ac':7 ,'c':7 }
com=-1
def __init__(self):
pass
def calc(self,val):
if val.isdigit(): # 数字入力
if self.com==0: # 直前に+入力
self.value+=int(val)
elif self.com==1: # 直前に-入力
self.value-=int(val)
else: # 直前も数字入力
self.value = int(val)
else:
try:
self.com = self.command[val] # コマンド引当
if self.com==2: # =入力
return self.value
elif self.com==3: # m+入力
self.Mplus(self.value)
elif self.com==4: # m-入力
self.Mminus(self.value)
elif self.com==5: # mc入力
self.Mclear()
elif self.com==6: # mr入力
return self.Mr()
elif self.com==7: # ac、c入力
self.value=int(0)
except:
print("コマンド引当失敗")
calc = Calculator()
while True:
value = input().strip()
if value=='q':
print("おしまい。")
break
answer=calc.calc(value)
if answer != None:
print("answer=" ,answer)
メイン処理
45行目以降がメイン処理になります。
以下のような処理をしています。
- 45行目 電卓インスタンスを作成し、
- 47行目 キー入力待ち、
- 48~50行目 ’q’入力でプログラム終了
- 51行目 ’q’以外のキー入力時は Calculatorクラスの計算メソッド(calc)を呼び出し
- 52~53行目 計算メソッドに戻り値があれば画面表示を行います
メモリークラス
1行目から10行目までは、Memoryクラスです。
電卓のキーM+、M-、MC、MRの4種類の機能を実現します。
- 2行目 メモリーされる変数です。値0で初期化しています。
- 3行目 M+(メモリへの加算)のメソッドです。
- 5行目 M-(メモリへの減算)のメソッドです。
- 7行目 MC(メモリ内容のクリア)のメソッドです。
- 9行目 MR(メモリ内容の読み出し)のメソッドです。
電卓クラス
12行目から42行目までがCalculatorクラス(電卓本体)になります。
ここでは、ディクショナリとコンストラクタ、例外を使っています。
解説しましょう。
- 14行目 キー入力をコマンド(0~7までの数字)に置き換えるディクショナリです。
- 17行目 コンストラクタです。ただし、処理は何もしません(pass)。
- 19~43行目 計算メソッド(calc)
- 20~26行目 数字入力時の処理
- 29行目 ディクショナリの引き当て処理です。
- 30~41行目 コマンド対応の処理です。
- 43行目 コマンド引当失敗による例外をキャッチしメッセージを表示します。
まとめ
今回は、 Pythonのインストールから簡単なプログラムの実装までを学習しました。
また、VSCodeを導入とプログラミング作業も簡単に解説しました。
Pythonは提供ライブラリが多く、言語的にもシンプルで覚えやすいので、知っておくと実業務では役に立ちます。