Pythonはその強力さと柔軟性から、幅広い自作ツールの開発に最適なプログラミング言語として知られています。
この記事では、ブログで紹介している自作ツールのソースコードを理解し、新しいツールを開発する際に欠かせないPythonの基本知識を、簡潔に解説しています。
内容をすべて理解している方は飛ばしていただいて構いませんが、ご自身のPythonのスキルに自信がない方は、必要に応じて基礎を確認する目的で活用いただけます。
記事では、変数の基本的な扱い方、条件分岐やループの書き方、関数やクラスの活用法、よく使われるライブラリの紹介、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("正常、以上にかかわらず実行されます")
関数とラムダ式
関数
関数とは、特定の処理をひとつにまとめて定義したものです。これにより、コード全体の量を減らすだけでなく、プログラムが整理されて読みやすくなります。また、他のプログラムへの再利用が容易になるという利点もあります。
def greet(x,y):
return x * y
通常、プログラム内で同じ処理を繰り返し記述する必要がある場合、それらを関数としてまとめます。
一方で、複雑な処理の場合には、それをいくつかの部分に分割し、それぞれを個別の関数として定義する方法が取られることもあります。これにより、コードの管理や保守がより効率的になります。
ラムダ式
ラムダ式(無名関数)は、非常に簡潔な方法で関数を記述する手段です。一行で完結するシンプルな処理に限定されますが、関数をわざわざ定義する必要がなく、どこでも利用できます。
# 一般的な関数
def myfunc(a,b):
return a + b
print(myfunc(2,3)) # 出力: 5
# ラムダ式
print((lambda a, b: a + b)(2, 3)) # 出力: 5
ラムダ式を変数に格納することで、変数を関数のように扱うことも可能です。しかし、この使い方はコードの可読性を損ねる可能性があるため、頻繁には使われません。
# ラムダ式を変数に代入して使う=あまり使われない
myfunc = lambda a, b: a + b
print(myfunc(2, 3)) # 出力: 5
ラムダ式の最も一般的な用途は、関数の引数として利用するケースです。特に、コールバック関数(別の関数に引数として渡され、その中で実行される関数)を必要とする場面では、別途コールバック関数を定義する代わりに、ラムダ式を使うことでコードを簡素化できます。
# ラムダ式を関数の引数として使う=よく使われる
filter_even = filter(lambda x: x % 2 == 0, l)
クラス
クラスは、処理とデータをひとつの単位としてまとめたものです。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で記述されたプログラムを指し、拡張子がのファイルとして保存されます。
複数のモジュールをまとめて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は、非常に強力で柔軟性の高いプログラミング言語で、自作ツールの開発には最適です。この記事で紹介した基礎知識を押さえることで、自作ツールの構築はもちろん、既存ツールの理解や修正も簡単に行えるようになります。
これからツール作成に挑戦される方は、まずはシンプルなツールから始め、徐々に高度なものへステップアップしていくことをお勧めします。
皆さまのツール開発に役立つ内容となれば幸いです。