Python is a general-purpose language widely used for automation, scripting, and data processing; this page gives you a practical “minimum working set” to write, run, and troubleshoot Python reliably.
Pythonは「何ができるか」と「最小の型(実行・基本構文・例外・import・運用の勘所)」で迷わないための判断軸をまとめます。
.pyの基本的な実行方法と、再利用のための関数化の位置づけを判断できるif / for / def / import / try)の役割を整理できるざっくり言うと、Pythonは「定型作業をプログラムにして、何度でも同じ結果を出す」ための道具です。
pip)で用途を増やせるPythonは、読みやすさを重視した汎用プログラミング言語で、短いスクリプトから大きなアプリまで同じ文法で書けます。実務では「運用の小さな自動化」を積み上げて、手作業のミスと時間を減らす目的でよく使います。
.py)importされるファイル)try / exceptで失敗を制御し、復旧・ログ・終了コードにつなげられるvenvでプロジェクトごとに依存関係を分離し、環境差事故を減らせるまずは「動いた!」を確認するだけの最短コードです(Hello, Python と1行表示)。
bash
python -V
python hello.py
Python
print("Hello, Python")
print(...)"Hello, Python"")で囲まれた部分は文字列(テキスト)です。つまり「Hello, Python」という文字そのものを表します。print("Hello, Python") 全体ファイルを作る
Python
print("Hello, Python")
hello.py で保存します(拡張子が .py になっていることが重要です)。ターミナル(コマンド)で実行する
保存したフォルダでターミナル(Windowsならコマンドプロンプト / PowerShell、Macならターミナル)を開いて実行します。
bash
python -V
バージョンが表示されれば、Pythonコマンドが使えています。次に実行します。
bash
python hello.py
成功の確認
次のように表示されたら成功です。
text
Hello, Python
python: command not found / 「python は認識されません」Pythonがインストールされていないか、コマンドが通っていません。
python3 を試します。bash
python3 -V
python: can't open file 'hello.py' / 「ファイルが見つかりません」コマンドを打っている場所(フォルダ)が違う可能性が高いです。
dirでhello.pyが見えるか確認します。lsでhello.pyが見えるか確認します。bash
dir
# または
ls
このコードは必ず1行表示されます。表示されない場合は、次を確認してください。
hello.pyが更新されているか)hello.pyか(同名ファイルが別フォルダにないか).py になっているか(hello.py.txtになっていないか)ifで「条件なら実行」を書きます。forでリストやファイル行を順番に処理します。defで処理を分け、テストしやすくします。try / exceptで失敗を捕まえ、ログと終了コードにつなげます。importで標準ライブラリや自作モジュールを使います。defの中で代入した名前は基本的にローカルです。外側の変数を代入で更新したい場合、安易にglobalに逃げず、引数と戻り値で受け渡す方が壊れにくいです。except Exceptionを広く捕まえるのは最終手段で、まずはFileNotFoundErrorなど具体的に捕まえます。str/int/list/dict)type()やログで入力の実体を確認できる形にします。listやdictはミュータブル(中身が変わる)なので、関数引数で受けたものを破壊的に変更すると呼び出し側に影響します。必要ならコピー(例:list(x))を作ります。importの挙動importは「どこから探すか」に依存します。同名ファイル(例:json.py)を置くと標準ライブラリより先に読まれて事故ります。dict.get()やtryで「欠けたらどうする」を先に決めます。pipは同じ?Pythonは言語(実行環境)、pipは外部パッケージを入れる道具です。Pythonが入っていても、プロジェクトの依存はpipで揃える必要があります。
pythonとpython3の違い環境によってコマンド名が違います。運用では「どのPythonを使ったか」をログに出し、venvで固定するのが安全です。
print()で十分? ログは要る?小さい検証はprint()で十分ですが、運用では出力先・時刻・レベルが揃うloggingが強いです。まずは「エラーだけでも分かる」形にします。
except:で全部握るexcept:は想定外まで飲み込みます。復旧不能になりやすいので、具体的な例外を捕まえるか、捕まえるならログと再送(raise)をセットにします。
.logを読み、特定の文字列を含む行数を数えるだけでも「手作業でgrepしてメモ」の時間を消せます。まずはpathlib+splitlines()で十分です。
監視やジョブ管理は「成功/失敗」を欲しがります。main()がintを返し、最後にraise SystemExit(...)で返す型は相性が良いです。
同じ処理を何度走らせても壊れないように、「上書きする/しない」「既に存在する場合の扱い」を決めます。ファイル出力なら一時ファイル→リネーム、も候補です。
venvを作って有効化し、同じ環境で実行します。まずsys.versionとpipの向き先が一致しているか確認します。input.txt)はcwdに依存します。ログにPath.cwd()を出し、必要なら設定で入力パスを受け取ります。if not lines:のような分岐で扱いを決めます。UnicodeDecodeErrorが出たら、まずencodingを指定して読みます。ログにファイル名と候補(utf-8/shift_jisなど)を残すと復旧が速いです。Pathにすると危険です。許可ディレクトリ配下か、拡張子が期待どおりか、など最低限の検証を入れます。print()しないようにします。必要なら伏字にします。try utf-8 / shift_jis のように候補を出す[INFO] / [ERROR]など最低限で良いので一貫させるpathlibPathから始めると事故が減ります。jsonJSONDecodeError)が出る前提で設計します。loggingprint()で型を作り、必要になったら移行でもOKです。argparsevenv / pipstatement(文)ifやforのように処理の流れを作る要素。expression(式)1 + 2、len(x)。exception(例外)try / exceptで扱う。module(モジュール)importで読み込める部品(多くは1ファイル)。mutable(ミュータブル)listやdictのように中身が変わる型。list/dictはミュータブルで、関数内の破壊的変更が呼び出し側に影響し得るexcept:は広すぎて危険。基本は具体例外を捕まえるimportは探索順があり、同名ファイルで標準ライブラリを上書きして事故る問題:listを関数に渡して中でappend()した。呼び出し側のlistはどうなる?
解説:listはミュータブルなので、同じオブジェクトを参照していれば呼び出し側にも反映されます。必要ならコピーを作ります。
問題:例外を捕まえるとき、まず避けたい書き方は?
解説:except:やexcept Exception:で何でも握るのは、原因が消えて運用で詰みやすいので避けます。
問題:import jsonが失敗する。よくある原因は?
解説:同じディレクトリにjson.pyがあると、標準ライブラリより先に読み込まれて壊れることがあります。
問題:ファイル読込でUnicodeDecodeErrorが出た。最初の対応は?
解説:read_text(encoding="utf-8")のようにencodingを明示し、必要なら別候補(shift_jisなど)を試します。
問題:スクリプトを監視に載せるときに役立つ「終了状態」の表現は?
解説:終了コードです。成功は0、失敗は非0にすると外側が判断しやすいです。
python script.pyで実行し、処理が増えたら関数化し、共通処理はモジュールに分けます。定期実行なら終了コードとログを整えます。importが失敗するのはなぜですか?sys.versionとPath.cwd()を出すと切り分けが進みます。raiseで上位に伝えます。pathlib、json、datetime、loggingが運用で効きやすいです。まずはpathlibでパス事故を減らすのが安全です。FileNotFoundErrorが出るPath.cwd()と対象パスをログに出すPath.exists())を入れる
UnicodeDecodeErrorが出るread_text(encoding="utf-8")のようにencodingを明示して試すModuleNotFoundErrorが出るpipの向き先が違う / 探索順の問題(同名ファイル)sys.version、python -m pip --versionで対応を確認venvを固定する、同名ファイル(例:json.py)を避ける
except:やpassがないか検索するraiseで上位に伝える
main() -> int+raise SystemExit(main())の型に寄せるpathlibから始め、cwd依存をログで見える化するpython -Vと仮想環境(venv)を最初に確認する