Python樹林– category –
-
【Python】「row[1]」のようなインデックス参照はなぜ危険か? データクラスで可読性と保守性を向上させる
CSVファイルやデータベースから取得したデータを処理する際、row[0]やrow[1]のように、リストやタプルのインデックス番号でデータにアクセスしていませんか? この方法は手軽ですが、コードの可読性や保守性を著しく低下させる「マジックナンバー」という... -
【Python】関数には辞書やオブジェクトを渡さない:疎結合で再利用性の高い設計
関数を設計する際、引数としてどのようなデータを受け取るべきか、迷うことはないでしょうか?例えば、ユーザーの情報が詰まった辞書やオブジェクトを丸ごと渡すべきか、それとも関数が必要とする特定のデータ(名前や年齢など)だけを渡すべきか。 結論か... -
【Python】デフォルト引数の罠:リストや辞書を使ってはいけない理由
Pythonの関数定義におけるデフォルト引数は、引数が指定されなかった場合に備えて初期値を設定できる、非常に便利な機能です。しかし、このデフォルト値にリスト ([]) や辞書 ({}) といった「ミュータブル(変更可能)」なオブジェクトを指定すると、多く... -
【Python】関数設計の極意:処理の「意味」でまとめる「関心の分離」
プログラミングにおいて、関数はコードを整理し、再利用性を高めるための基本的な単位です。しかし、ただ単に繰り返し現れるコードをまとめるだけでは、真に読みやすく、変更に強いコードにはなりません。重要なのは、その関数が**「何を」するのか**だけ... -
【Python】「is_valid」に潜む副作用の危険性:関数は「問い合わせ」と「命令」に分離しよう
関数を設計する上で、その関数が「何をするか」を明確に定義することは、コードの品質を左右する重要な要素です。多くの関数は、値を計算して返すだけのものと、システムの状態(DBのデータ、ファイル、オブジェクトの属性など)を変更するものの2種類に大... -
Python「is_valid」の罠:関数名とその戻り値の型は一致させよう
優れた関数名は、その関数が「何をするか」を明確に伝えます。しかし、それと同じくらい重要なのが、**「何を返すか」**を名前に反映させることです。特に is_ や has_ で始まる関数名は、読む人に対して「この関数は真偽値(True or False)を返す」とい... -
Python関数名、もう一歩先へ:「get」から「fetch」へ、動詞の使い分けで意図を伝える
Pythonで分かりやすい関数名を付けることは、コードの可読性を高める上で非常に重要です。名前が処理内容を的確に表していれば、他の開発者や未来の自分がコードを素早く理解する助けとなります。 特に、関数の命名で最も重要な要素である**「動詞」**の選... -
Python関数設計入門:分かりやすい名前を付けるための実践的命名規則
プログラミングにおいて、「コードは書く時間よりも読まれれる時間の方が遥かに長い」という言葉があります。特にチームで開発を行う場合や、未来の自分がコードをメンテナンスする場合、そのコードがどれだけ読みやすいか(可読性)は、開発効率や品質に... -
PythonのpyautoguiでWebフォーム入力を自動化する
この記事では、pyautoguiライブラリを使い、ウェブサイト上のフォームにデータ構造から情報を読み取って自動的に入力し、送信するスクリプトの作成方法を解説します。この手法は、繰り返し発生するデータ入力作業を効率化するのに役立ちます。 注意:この... -
【Python】 pyautoguiによるスクリーンショット撮影とピクセル解析
この記事では、Pythonのpyautoguiライブラリを使い、画面全体のスクリーンショットを撮影する方法と、画面上の特定座標のピクセルの色を解析する方法について解説します。これらは、GUIオートメーションにおいて、プログラムが画面の状態を「見る」ための... -
Python pyautoguiによるマウス操作:クリック、ドラッグ、スクロール
この記事では、Pythonのpyautoguiライブラリを使い、マウスカーソルの移動だけでなく、クリック、ドラッグ、スクロールといった、より高度なマウス操作を自動化する方法について解説します。 1. マウスカーソルの現在位置を監視する GUIオートメーションの... -
Python pyautoguiによるマウスカーソルの移動と位置取得
この記事では、Pythonのpyautoguiライブラリを使い、画面上のマウスカーソルをプログラムで制御するための基本的な関数、moveTo()、moveRel()、position()、size()について解説します。 画面の解像度を取得する pyautoguiでマウスを正確に操作するには、ま... -
Python pyautoguiの安全機能:PAUSEとFAILSAFE
pyautoguiはマウスやキーボードを自動で操作できる強力なライブラリですが、スクリプトが意図しない動作をした場合に、ユーザーがコンピュータの制御を失うリスクも伴います。この記事では、そのような事態を防ぐための重要な安全機能であるpyautogui.PAUS... -
PythonのPillowで画像に図形やテキストを描画する方法
この記事では、Pythonの画像処理ライブラリPillowを使い、画像上に線、矩形、円、多角形といった図形や、様々なフォント・サイズのテキストを描画する方法を解説します。これらの機能は、ImageDrawモジュールとImageFontモジュールによって提供されます。 ... -
PythonとPillowで複数の画像にロゴを一括で追加する
この記事では、Pythonの画像処理ライブラリPillowを使い、特定のフォルダ内にあるすべての画像ファイルに、ロゴやウォーターマークを一括で追加する実用的なスクリプトの作成方法を解説します。 1. 準備:Pillowのインストールとファイル配置 このスクリプ... -
PythonのPillowで画像処理入門 Part 3:ピクセル操作編
この記事は、Pythonの画像処理ライブラリPillowの解説シリーズの最終回です。今回は、画像を構成する一つ一つの点であるピクセルの色を直接読み取ったり、書き換えたりする方法について解説します。 1. ピクセルの色を取得する:getpixel() .getpixel()メ... -
PythonのPillowで画像処理入門 Part 2:変形操作編
この記事は、Pythonの画像処理ライブラリPillowの解説シリーズの第2回です。今回は、画像の切り抜き(クロップ)、コピー&ペースト、リサイズ、回転、反転といった、画像の形状を操作する基本的な変形処理について解説します。 1. 画像の切り抜き(クロッ... -
PythonのPillowで画像処理入門 Part 1:基本操作編
この記事では、Pythonで画像処理を行うための標準的なライブラリであるPillow(PIL Fork)の基本的な使い方を解説します。第1回では、画像の読み込み、プロパティの確認、保存、そして新しい画像の生成方法に焦点を当てます。 1. 準備:Pillowのインストー... -
Pythonで自分にSMS通知を送る再利用可能なモジュールを作成する
この記事では、時間のかかる処理が完了したときなどに、自分自身のスマートフォンにSMSで通知を送るための、再利用可能なPythonモジュールの作成方法を解説します。Twilio APIサービスと、認証情報を安全に管理するための環境変数の利用が中心となります。... -
PythonでExcelから会費未払いの会員にリマインダーを自動送信する
この記事では、Pythonを使い、Excelの会員名簿から会費が未払いのメンバーを特定し、彼らにカスタマイズされたリマインダーメールを自動で一括送信するスクリプトの作成方法を解説します。補足として、Twilioサービスを利用してSMSでリマインダーを送る方... -
Pythonのimapclientでメールを取得・削除する方法
この記事では、Pythonのimapclientライブラリを使い、IMAP(Internet Message Access Protocol)サーバーに接続してメールを検索・取得し、内容を解析、そして不要なメールを削除する基本的な方法を解説します。 1. 準備:ライブラリのインストールとアプ... -
PythonのsmtplibでEメールを送信する方法(Gmail対応版)
この記事では、Pythonの標準ライブラリであるsmtplibモジュールを使い、GmailなどのSMTPサーバー経由でEメールを送信するスクリプトの作成方法を解説します。スパムとして判定されないよう、適切にフォーマットされたメールを作成するemailモジュールも併... -
Pythonでアラーム音付きのシンプルなカウントダウンタイマーを作成する
この記事では、Pythonのtimeモジュールとsubprocessモジュールを使い、指定した秒数をカウントダウンし、終了時にアラーム音を鳴らすコマンドラインタイマーの作成方法を解説します。 1. プロジェクトの概要と準備 このスクリプトは、以下の2つの主要な機... -
Pythonのsubprocessモジュールで外部プログラムを実行する方法
この記事では、Pythonの標準ライブラリであるsubprocessモジュールを使い、Pythonスクリプトから外部のアプリケーション(電卓やメモ帳など)やコマンドを実行する方法について解説します。 subprocess.Popenによる非同期なプログラムの起動 subprocess.Po... -
Pythonのthreadingモジュールによるマルチスレッド処理入門
この記事では、Pythonのthreadingモジュールを使い、プログラム内で複数の処理を同時に(並行して)実行するためのマルチスレッド処理の基本について解説します。 シングルスレッドの問題点 通常のPythonプログラムは、書かれた順に一行ずつ処理を実行する... -
Pythonのdatetimeモジュール入門:日付と時間の操作
この記事では、Pythonで日付と時刻を扱うための標準ライブラリdatetimeモジュールの基本的な使い方を解説します。現在時刻の取得、特定の日時の表現、時間差の計算、そして日付と文字列の相互変換について説明します。 datetimeオブジェクト datetimeモジ... -
Pythonでコマンドラインストップウォッチを作成する
この記事では、Pythonのtimeモジュールを使い、ラップタイムも計測できるシンプルなコマンドラインベースのストップウォッチプログラムを作成する方法を解説します。 1. プログラムの設計 このストップウォッチは以下のロジックで動作します。 プログラム... -
Pythonのtimeモジュール入門:時間計測とプログラムの一時停止
この記事では、Pythonの標準ライブラリであるtimeモジュールを使い、プログラムの実行時間を計測したり、処理を一時的に停止させたりする基本的な方法について解説します。 time.time()関数:エポック秒の取得 time.time()関数は、エポックと呼ばれる基準... -
Pythonでコマンドライン天気予報ツールを作成する
この記事では、Pythonを使って、指定した地名の3日間の天気予報を取得し表示する簡単なコマンドラインツールを作成する方法を解説します。requestsモジュールで気象情報APIにアクセスし、返されたJSONデータを解析します。 1. 準備:必要なモジュールとAPI... -
PythonのjsonモジュールによるJSONデータの操作
JSON(JavaScript Object Notation)は、ウェブAPIや設定ファイルなどで広く使われる、軽量なデータ交換フォーマットです。Pythonの標準ライブラリであるjsonモジュールは、Pythonのデータ構造(辞書やリスト)とJSON形式の文字列を相互に変換するためのシ...