my.code();

my.code();

  • Python
    • 1.環境構築と基本思想
    • 2.基本構文とデータ型
    • 3.リスト、タプル、辞書、セット
    • 4.制御構文と関数
    • 5.モジュールとパッケージ
    • 6.オブジェクト指向プログラミング
    • 7.ファイルの入出力とコンテキストマネージャ
    • 8.例外処理
    • 9.ジェネレータとデコレータ
  • Ruby
    • 1.rubyの世界へようこそ
    • 2.基本構文とデータ型
    • 3.制御構造とメソッド定義
    • 4.すべてがオブジェクト
    • 5.コレクション (Array, Hash, Range)
    • 6.ブロックとイテレータ
    • 7.クラスとオブジェクト
    • 8.モジュールとMix-in
    • 9.Proc, Lambda, クロージャ
    • 10.標準ライブラリの活用
    • 11.テスト文化入門
    • 12.メタプログラミング入門
  • C++
    • 1.C++の世界へようこそ
    • 2.型システムとメモリ
    • 3.関数と参照
    • 4.ポインタと動的メモリ
    • 5.クラスの基礎
    • 6.クラスを使いこなす
    • 7.継承とポリモーフィズム
    • 8.テンプレート
    • 9.STL ①:コンテナ
    • 10.STL ②:アルゴリズムとラムダ式
    • 11.RAIIとスマートポインタ
    • 12.プロジェクトの分割とビルド

第1章: Pythonへようこそ:環境構築と基本思想

プログラミング経験者であっても、言語ごとのツールや流儀を最初に理解することは重要です。この章では、Pythonの開発環境を整え、基本的なツールの使い方を学びます。

Pythonの思想と特徴: 「読みやすさ」は最優先

他の言語(Java, C++, PHPなど)と比較したとき、Pythonが最も重視するのは**コードの可読性(Readability)**です。

  • シンプルな文法: C言語やJavaのような {}(波括弧)によるブロックや、行末の ;(セミコロン)を必要としません。
  • 強制的なインデント: Pythonは、**インデント(字下げ)**そのものでコードブロックを表現します。これは構文的なルールであり、オプションではありません。これにより、誰が書いても(ある程度)同じような見た目のコードになり、可読性が劇的に向上します。
  • 動的型付け (Dynamic Typing): JavaやC++のように int num = 10; と変数の型を明示的に宣言する必要がありません。num = 10 と書けば、Pythonが実行時に自動的に型を推論します。(これはJavaScriptやPHPと似ていますが、Pythonは型付けがより厳格(Strong Typing)で、例えば文字列と数値を暗黙的に連結しようとするとエラーになります)
  • 豊富な標準ライブラリ: 「Batteries Included(バッテリー同梱)」という思想のもと、OS操作、ネットワーク、データ処理、JSON、正規表現など、多くの機能が最初から標準ライブラリとして提供されています。

💡 The Zen of Python (Pythonの禅) Pythonの設計思想は、import this というコマンドでいつでも確認できます。

  • Beautiful is better than ugly. (醜いより美しいほうがいい)
  • Explicit is better than implicit. (暗黙的より明示的なほうがいい)
  • Simple is better than complex. (複雑であるよりシンプルなほうがいい)

Pythonのインストール方法

手元の環境で本格的に開発を進めるために、Pythonのインストール方法を紹介します。

Windows

WindowsでPythonをインストールするには、主に2つの方法があります。

  1. Python公式インストーラ: Pythonの公式サイトからインストーラをダウンロードする方法が最も一般的です。インストール時に「Add Python to PATH」のチェックを入れると、コマンドプロンプトやPowerShellから python コマンドを直接実行できるようになり便利です。
  2. Microsoft Store: Microsoft Storeからも手軽にPythonをインストールできます。

macOS / Linux

macOSでは、Homebrew というパッケージマネージャを使ってインストールするのが簡単です。 brew install python

もちろん、Windowsと同様に公式サイトからインストーラをダウンロードすることも可能です。多くのLinuxディストリビューションには初めからPythonがインストールされていますが、最新版を使いたい場合はディストリビューションのパッケージマネージャ(apt, yumなど)を利用するのが一般的です。

バージョン管理と環境管理ツール

より高度な開発や、複数のプロジェクトを並行して進める場合は、バージョン管理ツールや統合的な環境管理ツールの利用が推奨されます。

  • pyenv: 複数のPythonバージョン(例: 3.9と3.11)を一つのPCに共存させ、プロジェクトごとに切り替えるためのツールです。
  • Conda: 特にデータサイエンスの分野で人気のあるツールです。Conda はPythonのバージョン管理だけでなく、パッケージ管理、仮想環境の管理までを一つでこなせるオールインワンのソリューションです。

対話モード(REPL)でPythonを体験しよう

REPL(Read-Eval-Print Loop)は、入力したコードをその場で実行し、結果をすぐに見ることができる強力な学習・デバッグツールです。

ブラウザで今すぐ試す

このウェブサイトではドキュメント内にPython3の実行環境を埋め込んでいます。 以下のように青枠で囲われたコード例には自由にPythonコードを書いて試すことができます。気軽に利用してください。

自分のPCで使う

インストールが完了したら、自分のPCのターミナル(コマンドプロンプトやPowerShellなど)で python と入力すれば、同じ対話モードを起動できます。

>>> というプロンプトが表示されたら準備完了です。

REPL の基本的な使い方

  • 計算: 数式を直接入力すると、計算結果が返ってきます。
  • 変数と関数の利用: 変数を定義したり、print()のような組み込み関数を呼び出したりできます。
  • ヘルプ機能: help() と入力するとヘルプが表示されます。調べたいモジュールや関数名(例: str)を入力するとドキュメントが表示されます。
    • PCのターミナルで起動したREPLでは、対話的なヘルプモードが起動します。ヘルプモードを抜けるには quit と入力します。
  • 終了方法: REPLを終了するには、exit() と入力するか、ショートカットキー(macOS/Linuxでは Ctrl + D、Windowsでは Ctrl + Z を押してからEnter)を使用します。
    • このウェブサイトに埋め込まれているREPLは、終了できません。

スクリプトの実行方法

一連の処理をまとめて実行する場合は、.py という拡張子を持つファイルにコードを記述します。例えば、hello.py というファイルを以下のように作成します。 REPLでは式を入力するだけでも結果が表示されていましたが、スクリプトで結果を表示するには print() 関数を使う必要があります。

hello.py

このスクリプトを実行するには、ターミナルで python hello.py のようにコマンドを入力します。

このウェブサイト上では以下のように実行ボタンをクリックするとスクリプトの実行結果が表示されます。上の hello1.py のコードを変更して再度実行すると結果も変わるはずです。試してみてください。

python hello.py

__main__ について

前述の hello.py のようにファイルの1行目から処理を書いても問題なく動作しますが、一般的には以下のようなお決まりの書き方が用いられます。

hello2.py
python hello2.py

なぜわざわざ if __name__ == "__main__": を使うのでしょうか? それは、書いたコードを「スクリプトとして直接実行する」場合と、「他のファイルから部品(モジュール)として読み込んで使う」場合の両方に対応できるようにするためです。

Pythonでは、ファイルは他のファイルから import 文で読み込むことができます。このとき、読み込まれたファイル(モジュール)は上から順に実行されます。

if __name__ == "__main__": を使うと、「このファイルがコマンドラインから直接 python a.py のように実行された時だけ、このブロックの中の処理を実行してね」 という意味になります。

例:再利用可能な関数を持つスクリプト

my_utils.py

このファイルを2通りの方法で使ってみます。

  1. 直接スクリプトとして実行する

    python my_utils.py
  2. 他のファイルからモジュールとして読み込む

    main_app.py
    python main_app.py

    my_utils.py のテストコード(--- Running Test ---など)は実行されず、say_hello 関数だけを部品として利用できました。

このように、if __name__ == "__main__": は、再利用可能な関数やクラスの定義と、そのファイル単体で動かすための処理をきれいに分離するための、Pythonにおける非常に重要な作法です。

パッケージ管理ツール `pip` と仮想環境 `venv`

Pythonの強力なエコシステムは、豊富なサードパーティ製パッケージ(ライブラリ)によって支えられています。これらのパッケージを管理するのが pip です。

しかし、プロジェクトごとに異なるバージョンのパッケージを使いたい場合、依存関係の衝突が問題になります。これを解決するのが 仮想環境 で、Pythonでは venv モジュールを使って作成するのが標準的です。

仮想環境とは? 🚧 プロジェクト専用の独立したPython実行環境です。ここでインストールしたパッケージはシステム全体には影響を与えず、そのプロジェクト内に限定されます。

基本的な流れ:

  1. 仮想環境の作成:

  2. 仮想環境の有効化(Activate):

    有効化すると、ターミナルのプロンプトに (.venv) のような表示が付きます。

  3. パッケージのインストール: 有効化された環境で pip を使ってパッケージをインストールします。

  4. 仮想環境の無効化(Deactivate):

pyenv でPythonバージョンを固定し、venv でプロジェクトのパッケージを隔離する のが、現代的なPython開発の基本スタイルです。(前述の Conda は、このPythonバージョン管理と環境・パッケージ管理を両方とも行うことができます。)