-
Python樹林
Pythonのコーディング規約:PEPとPEP 8(スタイルガイド)の基本ルール
Pythonは「読みやすさ」を重視して設計された言語です。誰が書いても同じような、読みやすいコードになるように、Pythonコミュニティには**「PEP 8(ペップエイト)」**と呼ばれる標準的なコーディング規約(スタイルガイド)が存在します。 この記事では... -
Python樹林
PythonでINI設定ファイルを読み込む:configparserのget, getint, getbooleanの使い方
アプリケーションの設定情報(データベースの接続先、デバッグモードの有無、タイムアウト時間など)を外部ファイルに分離することは、開発の基本です。 Pythonでは、古くから使われているシンプルな形式である INIファイル を扱うための標準ライブラリ co... -
Python樹林
Pythonのunittest実行ガイド:コマンドラインからテストを一括・個別実行する方法
unittest で作成したテストコードは、Pythonスクリプトとして直接実行する(if __name__ == "__main__": を書く)だけでなく、コマンドラインから python -m unittest コマンドを使用することで、より柔軟に実行できます。 このコマンドを使うと、ディレク... -
Python樹林
Python unittestの前処理と後処理:setUp, tearDown, setUpClass, tearDownClassの完全ガイド
単体テストを行う際、テストを実行する前にデータベースに接続したり、テスト用の初期データを用意したりといった「前処理」が必要になることがよくあります。また、テスト終了後には、作成した一時ファイルを削除するなどの「後処理」が必要です。 Python... -
Python樹林
Pythonのunittest入門:標準ライブラリによる単体テストの書き方とアサーションメソッド一覧
品質の高いコードを維持するためには、作成した関数やクラスが意図通りに動作するかを検証する「テスト」が不可欠です。Pythonには、標準ライブラリとして unittest モジュールが組み込まれており、追加のインストールなしで本格的な単体テストを行うこと... -
Python樹林
Pythonのloggingでログをファイルとコンソールの両方に出力する方法:Handlersの活用
アプリケーションを開発・運用する際、ログ情報は非常に重要です。開発中はコンソール(画面)でリアルタイムに動作を確認したい一方で、本番運用時や後からエラー解析を行うためには、ログを「ファイル」として永続的に保存しておく必要があります。 Pyth... -
Python樹林
Pythonのlogging:ログ出力フォーマットのカスタマイズと変数一覧
ログ出力において、単にエラーメッセージを表示するだけでは不十分な場合があります。「いつ」「どのファイルの」「どの行で」発生したかというメタ情報があって初めて、ログはデバッグや監視に役立つ情報となります。 Pythonの logging モジュールでは、... -
Python樹林
Pythonのloggingモジュール入門:print関数を使わずにログを出力すべき理由と基本設定
開発中のデバッグや、本番環境での動作確認において、「プログラムがどこまで進んだか」「変数の値はどうなっているか」を確認するために print() 関数を使用することはよくあります。 しかし、本格的なアプリケーション開発においては、print() ではなく... -
Python樹林
Pythonの if __name__ == “__main__”: の意味と使い方:直接実行とインポートの制御
Pythonのスクリプトを書いていると、ファイルの末尾によく以下のような記述を見かけることがあります。 if __name__ == "__main__": main() これは「おまじない」として定型的に書かれることが多いですが、実際には「そのファイルがスクリプトとして直接実... -
Python樹林
Pythonのパッケージ作成入門:ディレクトリ構成とinit.pyによるインポートの制御
プログラムの規模が大きくなり、モジュールファイル(.py)の数が増えてくると、それらを一つのディレクトリ(フォルダ)にまとめて整理したくなります。 Pythonでは、複数のモジュールをディレクトリ単位でまとめたものを**「パッケージ(Package)」**と... -
Python樹林
Pythonの独自モジュール作成とインポート:プログラムを複数ファイルに分割する方法
Pythonでプログラムの規模が大きくなってくると、すべてのコードを1つのファイル(.py)に記述するのは管理が難しくなります。 そのような場合、機能ごとに関数やクラスを別々のファイルに分割し、必要に応じて読み込む(インポートする)のが一般的です。... -
Python樹林
WordPressで「更新に失敗しました。返答が正しい JSON レスポンスではありません。」エラーが出た原因と対処法(タイトルの危険キーワードが原因だった例)
概要:突然出た「返答が正しい JSON レスポンスではありません。」エラー WordPressのブロックエディターで投稿を保存しようとしたところ、突然、次のエラーが表示されました。 更新に失敗しました。 返答が正しい JSON レスポンスではありません。 それま... -
Python樹林
Pythonで文字列を式として実行する方法:動的実行の基本とセキュリティリスク
Pythonには、文字列として表現されたコード(式)を、実際のプログラムとして解釈・実行するための組み込み関数が存在します。 この機能は非常に強力であり、ユーザー入力に応じた計算や、動的な条件判定などに利用できます。しかし、その強力さゆえに、使... -
C#樹林
【C#】LINQのSelectManyで階層構造のリストを平坦化(フラット)にする
オブジェクトが別のコレクションをプロパティとして持っている場合、それらをまとめて一つのリストとして扱いたい場面があります。これを「平坦化(Flatten)」と呼びます。 通常のSelectメソッドでは「リストのリスト(入れ子構造)」になってしまい扱い... -
C#樹林
【C#】LINQのGroupJoinで親データと子データを階層的に結合する
データベースやログ解析などのシステム開発において、「親となるデータ」と、それに紐付く「複数の子データ」を結合し、扱いやすい階層構造にまとめたいケースがあります。 C#のLINQにあるGroupJoinメソッドを使用すると、SQLの「左外部結合(LEFT OUTER J... -
C#樹林
【C#】LINQのJoinメソッドで2つのリストを結合する(内部結合)
リレーショナルデータベース(RDB)において、テーブル同士を共通のIDで紐付ける「JOIN(結合)」は頻繁に行われる操作です。C#のLINQにおいても、Joinメソッドを使用することで、メモリ上の2つのコレクションに対して同様の結合操作を行うことができます... -
C#樹林
【C#】LINQのGroupByメソッドでデータをキーごとにグループ化する
業務アプリケーション開発において、売上データやログデータなどを特定の条件(カテゴリ、日付、ステータスなど)ごとに分類して処理したい場面は頻繁に発生します。 C#のLINQに含まれるGroupByメソッドを使用すると、こうしたグループ化処理を宣言的かつ... -
C#樹林
【C#】LINQのExceptメソッドで2つのリストの差分(差集合)を抽出する
2つのコレクションを比較し、「片方にあって、もう片方にはないデータ」を抽出したい場合、数学でいう「差集合(Relative Complement)」の考え方が必要になります。これは、リストAからリストBに含まれる要素を引き算するイメージです。 C#のLINQには、こ... -
Python樹林
Pythonで環境変数を取得する方法:os.environとos.getenvの使い分けと安全な設定管理
Webアプリケーションやスクリプトを作成する際、データベースのパスワードやAPIキーといった機密情報をソースコードに直接記述することは、セキュリティ上の大きなリスクとなります。 こうした情報は、OS側で管理される**「環境変数」**として保存し、プロ... -
Python樹林
Python処理の一時停止:time.sleep()関数の使い方と秒数指定
スクリプトを実行する際、APIへのリクエスト間隔を調整したり、定期的な処理の間に待機時間を設けたりする必要が生じることがあります。 Pythonでは、標準ライブラリの time モジュールに含まれる sleep() 関数を使用することで、プログラムの実行を指定し... -
Python樹林
Pythonのinput()関数:キーボードからのユーザー入力を受け取る方法
コマンドラインツールや対話型のスクリプトを作成する際、プログラムの実行中にユーザーからの入力を受け取りたい場面があります。 Pythonでは、組み込み関数の input() を使用することで、キーボードからの標準入力を簡単に取得できます。 この記事では、... -
Python樹林
Pythonスクリプトを終了させるsys.exit():終了ステータス(Exit Code)の制御
Pythonスクリプトをコマンドラインやシェルスクリプト、あるいは他のプログラムから呼び出して実行する場合、「その処理が正常に終わったのか、それともエラーで終わったのか」を呼び出し元に伝える必要があります。 この伝達手段として使われるのが**「終... -
未分類
Pythonスクリプトにコマンドライン引数を渡す方法:sys.argvの基本的な使い方
Pythonスクリプトを実行する際、プログラムの中で固定された値を使うのではなく、実行時に外部から値を渡したい場合があります。これを「コマンドライン引数」と呼びます。 例えば、python script.py data.txt のようにファイル名を指定したり、処理モード... -
Python樹林
Pythonのassert文(アサーション):デバッグ効率を高める条件チェックと注意点
プログラミングを行っていると、「この時点での変数は必ず正の値であるはず」「リストの中身は空ではないはず」といった、**「プログラムが正しく動作していれば絶対に成り立つはずの前提条件」**が存在します。 この前提条件をコードの中に記述し、もし満... -
未分類
Pythonで例外の詳細情報(スタックトレース)を取得する方法:tracebackモジュールの活用
try-except 文で例外を捕捉し、print(e) でエラー内容を表示するだけでは、大規模なプログラムのデバッグには不十分な場合があります。単純なエラーメッセージだけでは、「具体的にどのファイルの、どの行で、どの関数を経由してエラーが発生したのか」と... -
Python樹林
Pythonの例外再送出:エラーをログに残して呼び出し元に通知する方法
例外処理(try-except)を実装する際、「その場でエラーを解決する」のではなく、「エラーが発生したという事実をログに記録し、実際の対処は呼び出し元(上位の処理)に任せたい」というケースがあります。 このような場合に有効なのが、**例外の再送出(... -
Python樹林
Pythonで例外を意図的に発生させる:raise文の使い方と入力値チェック
例外処理(try-except)は、発生したエラーを「捕捉」するための機能ですが、堅牢なプログラムを作成するためには、開発者自身が意図的にエラーを「発生」させなければならない場面があります。 例えば、関数の引数に想定外のデータが渡された場合や、処理... -
Python樹林
Pythonの例外処理:elseとfinallyによる終了処理の制御と使い分け
Pythonの例外処理構文(try-except)には、あまり知られていないものの、非常に重要な役割を持つ2つのオプション、else 節と finally 節が存在します。 これらを適切に組み合わせることで、「エラーが起きなかったときだけ実行したい処理」や、「エラーの... -
Python樹林
Python例外処理:try-exceptで複数のエラーを個別に捕捉する方法と記述順序
プログラムにおいて、一つの処理ブロック内で発生しうるエラー(例外)の種類は一つとは限りません。例えば、データの読み込み処理では「ファイルが見つからない」「データ形式が不正」「必要な値が欠けている」など、様々な問題が発生する可能性がありま... -
Python樹林
Pythonの代表的な例外一覧:よくあるエラーの原因と対処法まとめ
Pythonでプログラミングをしていると、様々な「例外(エラー)」に遭遇します。エラーメッセージは一見難しそうに見えますが、実は「何が間違っているか」を具体的に教えてくれる重要なヒントです。 例外の種類ごとの発生原因を知っておくことで、デバッグ...