Pythonは非常に強力で柔軟なプログラミング言語であり、さまざまな自作ツールを作成するのに適しています。
本記事では、本ブログで公開している自作ツールのソースコードの理解や、新たにツールを作成する時に必要となるPythonの基礎知識について、要点をざっくりと解説しています。
本記事の内容をすべて理解している方は本記事をスルーしていただいて結構ですが、ご自身のPytyonの理解度に不安があれば、その箇所を確認する目的で活用して頂けます。
変数の扱い方から始まり、条件分岐やループ、関数やクラスの使い方、よく使われるライブラリの紹介、Pythonプログラムの実行方法について、サンプルコードを交えてわかりやすく説明ています。
Pythonの基礎をしっかり押さえて、自作ツールの世界に一歩踏み出しましょう!
Pythonの文法
Pythonの文法もかなりのボリュームがあり、またバージョンによって日々進化していますので、ここではPythonにおける最も基本的な文法について、おさらいしておきます。
本記事で分からない部分がでてきたら @ITの「Python入門」が参考になります。
変数
変数には、数値、文字列、リスト、辞書(ディクショナリ)、セット、タプルが使えます。
x = 10 # 数値(整数、実数)
y = "Hello" # 文字列
z = [1, 2, 3] # リスト
person = {"name": "Alice", "age": 25} # 辞書
fruits = {"apple", "banana", "cherry"} # セット
point = (10, 20) # タプル
制御構文
条件分岐
条件によって処理を分岐します。
if x >= 10 and y is None:
print("x が 10 以上で、y が None")
elif x != 5 or x == 4:
print("x が5 以外、または x が 4 と等しい")
else:
print("どの条件にも当てはまらない")
ループ
ループには3種類あります。
- 指定した回数だけループする
- 配列変数(リスト、辞書、タプル、セット)の要素の数だけループする
- 条件が満たされる間のみループする
# --------------------------------------------------
# 指定回数のループ
# --------------------------------------------------
for i in range(3) :
print(i)
# --------------------------------------------------
# リストの数だけループ
# --------------------------------------------------
datas = [1,2,3,4,5]
for data in datas :
print(data)
# --------------------------------------------------
# 条件が満たされる間のみループ
# --------------------------------------------------
x = 10
white x >= 0 :
print(data)
x -= 1
ループの途中でループの先頭に戻りたい場合、continue、途中でループを抜けたい場合は break を使います。
例外
# --------------------------------------------------
# 全ての例外を受け取る
# --------------------------------------------------
try:
result = 10 / 0
except :
print("ゼロで割ることはできません")
finally:
print("正常、以上にかかわらず実行されます")
# --------------------------------------------------
# 特定の例外のみ受け取る
# --------------------------------------------------
try:
result = 10 / 0
except ZeroDivisionError:
print("ゼロで割ることはできません")
finally:
print("正常、以上にかかわらず実行されます")
関数とラムダ式
関数
関数とは、処理を1つのまとまりで定義したものです。プログラム全体のコード量が削減できるほか、プログラムの見やすさや、他のプログラムへの流用が簡単になるというメリットがあります。
def greet(x,y):
return x * y
一般的にプログラムの中で同じような処理を何度も記述する場合、その部分を切り出して関数化しますが、複雑な処理の場合は処理をいつくかに分割し、それぞれを関数化することもあります。
ラムダ式
ラムダ式は無名関数とも呼ばれ、短く簡単な処理を簡素に定義できるメリットがあります。ラムダ式を変数に代入することで、あたかも変数を関数のように扱うことが可能ですが、この方法はあまり使われません。
関数(例えば filterなど)の中には、引数に関数を渡すことを前提としているものがあり、このような関数に対してラムダ式を使うケースが一般的です。
# ラムダ式を変数に代入して使う
myfunc = lambda a, b: a + b
print(myfunc(2, 3)) # 出力: 5
# ラムダ式を関数の引数として使う
filter_even = filter(lambda x: x % 2 == 0, l)
クラス
クラスとは、処理とデータを1つのまとまりとして定義したものです。self.変数名 はインスタンス変数(またはプロパティ)と呼び、クラス内にデータを保持するための変数です。
処理は関数として定義しますが、クラスの中で定義した関数のことをメソッドと呼びます。一般的な関数との違いは、第一引数には必ず self を指定する必要があることです。
class Member:
# コンストラクタ
def __init__(self, name,section):
#インスタンス変数の定義
self.name = name
self.section
# メソッド
def get_name(self):
return self.name
mem = Member("山田","第一営業部")
print(mem.get_name())
ライブラリ・モジュール・パッケージ
モジュールとは、Pythonで書かれたプログラムのことで、拡張子 .py のファイルです。
モジュールを1つのフォルダに集めたものをパッケージと呼んでいます。
ライブラリは、ある目的や機能を実現するために必要なモジュールやパッケージの集りです。
ライブラリ > パッケージ > モジュール
import による参照
ライブラリを使う場合は、呼び出す前に、import を使ってライブラリを読み込みます。importには3つの書き方があります。
1つ目は単にライブラリ名を指定するだけです。2つ目はライブラリに略称を付けたい場合です。3つ目はライブラリの中から、特定の関数やクラスだけを読み込みたい場合です。
import ライブラリ名
import ライブラリ名 as エイリアス名
from ライブラリ名 import 関数名
import os
import numpy as np
import matplotlib.pyplot as plt
ライブラリのインストール
ライブラリとは、特定の機能を持つ再利用可能なコードの集まりです。Pythonのライブラリには、標準ライブラリと標準外(サードパーティ)のライブラリがあります。
pip によるインストール/アンインストール
標準外のものについては、pip コマンドによるインストールが必要です。
pip install ライブラリ名
pip install ライブラリ名 == バージョン番号
例えば、pandas をインストールする場合、次のように記述します。
pip install pandas
pip install pandas == 1.2.3
一方、アンインストールする場合も pip コマンドを使います
pip uninstall ライブラリ名
pip uninstall pandas
requirements によるインストール
テキストファイルにライブラリとバージョンの一覧を記述することで、一括してインストールが可能です。テキストファイルの名前は何でも構いませんが、慣例的に requirements.txt というファイル名が広く利用されています。
pip install -r requirements.txt
requirements.txtの中身は、次のように記述します。
numpy==1.23.5
opencv-python==4.7.0.72
onnx==1.14.0
insightface==0.7.3
psutil==5.9.5
tk==0.1.0
customtkinter==5.1.3
pillow==9.5.0
torch==2.0.1+cu118; sys_platform != 'darwin'
torch==2.0.1; sys_platform == 'darwin'
torchvision==0.15.2+cu118; sys_platform != 'darwin'
torchvision==0.15.2; sys_platform == 'darwin'
Pythonプログラムの実行
python の後にファイル名を指定します。
python ファイル名.py
python youtube_dl.py
python のオプションには、-c と -m があります。 これらはあまり使われないので本記事では割愛しますが、詳しく知りたい方は「Python公式ページ」をご確認ください。
まとめ
本記事では、Pythonでツールを自作する際に必要となる基礎知識について、ポイントを絞って解説しました。Pythonの基本的な文法から始まり、条件分岐やループ、関数やクラスの使い方、さらにライブラリの活用方法まで幅広くカバーしました。
- 変数の扱い方
- 制御構文
- 関数とラムダ式
- クラス
- ライブラリの使い方
- Pythonプログラムの実行方法
pythonは非常に強力で柔軟な言語であり、自作ツールの作成に最適です。本記事で紹介した基礎知識を押さえておけば、ツールの自作や既存ツールの理解、修正が容易になります。これから自作ツールの世界に踏み出す方は、まずは簡単なツールから始めてみて、徐々に複雑なものに挑戦していくと良いでしょう。
本記事が、皆様のツール作成のお役に立てることを願っています。