第1部 Python基礎編
第1章 学習の準備と開発環境
まずは道具をそろえましょう。Pythonのインストールから、最初のプログラムを動かすところまでを丁寧に進めます。
🎯 この章で学ぶこと
- Pythonとはどんな言語か、なぜセキュリティ分野で使われるのか
- Pythonのインストールと動作確認
- 対話モード(REPL)とスクリプト実行の2つの使い方
- VS Codeによる快適な開発環境の準備
1.1 Pythonとはどんな言語か
Python(パイソン)は、読みやすさを最重要視して設計されたプログラミング言語です。文法がシンプルで英語に近く、初学者が最初に学ぶ言語として世界中で採用されています。
そしてPythonは、セキュリティ業界の共通語でもあります。理由は次のとおりです。
- 自動化に強い — ログの解析、大量ファイルの検査、定型作業の自動化などがすぐに書ける
- ライブラリが豊富 — 通信、暗号、データ解析など、セキュリティ業務に必要な部品がそろっている
- ツールの多くがPython製 — セキュリティ診断ツールや解析ツールにはPythonで書かれたものが多く、読めるだけで世界が広がる
IT部門の実務では「サーバーのログから不審なアクセスを探す」「退職者アカウントの棚卸し」「ファイルサーバーの権限チェック」といった作業が発生します。これらは手作業では時間がかかりミスも起きますが、Pythonなら数十行のスクリプトで正確に・繰り返し実行できます。この教科書の最終章近く(第13章)で、実際にそうしたツールを作ります。
1.2 Pythonをインストールする
Windowsの場合
- 公式サイト python.org/downloads から最新の Python 3 のインストーラーをダウンロードします。
- インストーラーを起動したら、必ず「Add python.exe to PATH」にチェックを入れてから「Install Now」をクリックします。ここを忘れるとコマンドが認識されず、初学者がつまずく原因の第1位です。
- 完了したら、スタートメニューから「PowerShell」を開き、次のコマンドで確認します。
PS C:\Users\you> python --version
Python 3.12.4
macOSの場合
macOSにも古いPythonが入っていることがありますが、公式サイトのインストーラーか、Homebrewを使って新しいPython 3を入れるのがおすすめです。
$ brew install python3
$ python3 --version
Python 3.12.4
Windowsでは python、macOS/Linuxでは python3 と入力するのが一般的です。この教科書では以後 python と表記しますので、環境に合わせて読み替えてください。
1.3 対話モード(REPL)を触ってみる
Pythonには、1行入力するとすぐに結果が返ってくる対話モード(REPL:Read-Eval-Print Loop)があります。ターミナルで python と入力するだけで始まります。
$ python
Python 3.12.4 (main, ...)
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 + 2
3
>>> "Hello" + " " + "World"
'Hello World'
>>> 2 ** 10 # べき乗(2の10乗)
1024
>>> exit() # 終了
>>> がPythonの入力待ちの印です。「ちょっと試したい」ときはいつでもREPL。この習慣が学習速度を大きく左右します。
1.4 初めてのプログラムを書いて実行する
REPLは試し書きには便利ですが、本格的なプログラムはファイルに保存します。拡張子は .py です。テキストエディタで次の内容のファイルを作りましょう。
# hello.py — 初めてのPythonプログラム
print("Hello, Python!")
print("セキュリティ学習をはじめます")
保存したフォルダでターミナルを開き、実行します。
$ python hello.py
Hello, Python!
セキュリティ学習をはじめます
おめでとうございます!これがプログラミングの第一歩です。print() は「かっこの中身を画面に表示する」命令(関数)です。
# から行末まではコメントといい、実行時には無視されます。「なぜこう書いたのか」をメモするために使います。人が読んで理解できるコードを書くことは、セキュリティ的にも重要です(読めないコードはレビューできず、欠陥が見逃されます)。
1.5 VS Codeを準備する
メモ帳でも書けますが、実務ではエディタを使います。おすすめは無料の Visual Studio Code(VS Code) です。
- 公式サイトからVS Codeをインストールする
- 左側の拡張機能アイコンから「Python」拡張(Microsoft製)をインストールする
- 「Japanese Language Pack」を入れると日本語化できる
Python拡張を入れると、コードの色分け、入力補完、その場でのエラー指摘(波線)が効くようになります。エディタが指摘してくれる小さなミスの多くは、後の章で学ぶ「バグ=脆弱性の卵」です。早く気づける環境を整えることは、セキュアな開発の第一歩です。
1.6 エラーと友達になる
わざとエラーを出してみましょう。REPLで次を入力します。
>>> print(messsage)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'messsage' is not defined
この Traceback(トレースバック) がPythonのエラー報告です。読み方のコツは2つだけです。
- 最後の行を最初に読む — エラーの種類(ここでは
NameError)と説明が書いてある - 「どこで」を確認する — ファイル名と行番号が示される
ここでは「messsage という名前は定義されていない」と言われています(sが1個多いタイプミス)。エラーは失敗ではなく、コンピュータからの正確なフィードバックです。
まとめ
- Pythonは読みやすさ重視の言語で、セキュリティ実務・自動化に広く使われる
- インストール時は「Add to PATH」を忘れない
- ちょっと試すならREPL、本格的に書くなら
.pyファイル +python ファイル名 - エラーメッセージは最後の行から読む
練習問題
REPLを起動して、次の計算をしてみましょう。①「1年は何秒か」 ②「2の32乗」(IPv4アドレスの総数です)
解答を見る
>>> 60 * 60 * 24 * 365
31536000
>>> 2 ** 32
4294967296
IPv4アドレスは約43億個しかありません。この「足りなさ」がIPv6が生まれた理由の一つです。
self_intro.py というファイルを作り、自分の名前・所属・学習の目標を3行で表示するプログラムを書いて実行してください。
解答を見る
# self_intro.py
print("名前: 山田 太郎")
print("所属: 情報システム部")
print("目標: Pythonでセキュリティ業務を自動化する")
$ python self_intro.py
名前: 山田 太郎
所属: 情報システム部
目標: Pythonでセキュリティ業務を自動化する
わざと print("hello"(閉じかっこを忘れた状態)をファイルに書いて実行し、どんなエラーが出るか確認してください。エラーの「種類」は何ですか?
解答を見る
SyntaxError(構文エラー)が発生します。SyntaxError: '(' was never closed のように「かっこが閉じられていない」と教えてくれます。構文エラーはプログラムの実行前に検出されるエラーです。