他の言語での経験を活かし、Pythonの基本的な文法と組み込み型を素早くキャッチアップしましょう。特に、多くの静的型付け言語と異なるインデントによるブロック表現と動的型付けは、Pythonを理解する上で最初の重要なポイントです。
この章のコード例は、Pythonの対話モード(REPL)で >>> に続くコードを直接入力し、その直後に表示される結果を確認することを想定しています。
静的型付け言語(Java, C++, C#など)に慣れている方にとって、Pythonの変数宣言は非常にシンプルに感じられるでしょう。
Pythonでは、変数の型を事前に宣言する必要はありません。変数への代入が初めて行われたときに、変数が作成され、代入された値の型が自動的にその変数の型となります。これを動的型付けと呼びます。
変数名だけを入力してEnterキーを押すと、その時点での変数の値を確認できます。
>>> # 変数 `count` は整数(int)型として自動的に解釈される >>> count = 100 >>> count 100 >>> type(count) # type()関数で現在の型を確認 <class 'int'> >>> # 同じ変数に別の型(文字列)を再代入できる >>> count = "百" >>> count '百' >>> type(count) <class 'str'>
ここでは、プログラミングで頻繁に使用される基本的なデータ型を紹介します。対話モードでは、式を評価した結果が直接表示されます。
Pythonには整数 (int) と浮動小数点数 (float) があります。型の区別は自動的に行われます。
>>> x = 10 >>> y = 3.14 >>> # 演算結果がそのまま表示される >>> x + y 13.14 >>> x * 2 20 >>> x / 3 # 通常の除算 3.3333333333333335 >>> x // 3 # 整数の除算(切り捨て) 3 >>> x % 3 # 剰余 1 >>> x ** 3 # べき乗 1000
文字列はシングルクォート ' またはダブルクォート " で囲みます。どちらを使っても機能的な違いはありません。
>>> message1 = "こんにちは、世界" >>> message2 = 'Hello, World!' >>> # 文字列の連結 >>> greeting = message1 + " & " + message2 >>> greeting 'こんにちは、世界 & Hello, World!' >>> # 文字列の繰り返し >>> "-" * 10 '----------'
他の言語での文字列フォーマット(printf や String.format)に相当するものとして、Python 3.6以降ではf-stringが推奨されます。非常に直感的で強力です。
文字列の前に f を置き、波括弧 {} の中に変数名や式を直接記述できます。
>>> name = "佐藤" >>> age = 28 >>> # 従来の方法(少し面倒) >>> "名前: " + name + ", 年齢: " + str(age) '名前: 佐藤, 年齢: 28' >>> # f-stringを使って文字列を生成する >>> profile = f"名前: {name}, 年齢: {age}" >>> profile '名前: 佐藤, 年齢: 28' >>> # f-string内では計算も可能 >>> f"{name}さんは10年後、{age + 10}歳です。" '佐藤さんは10年後、38歳です。'
真偽値は True または False の2つの値を持ちます。先頭が大文字であることに注意してください。
>>> is_active = True >>> is_admin = False >>> # 論理演算子 (and, or, not) >>> is_active and is_admin False >>> is_active or is_admin True >>> not is_active False
動的型付けはコードを素早く書ける一方で、大規模なプロジェクトでは、関数がどのような型の引数を期待し、何を返すのかが分かりにくくなることがあります。
そこでPython 3.5から導入されたのが型ヒントです。これは、変数や関数の引数、戻り値に「期待される型」を注釈として付与する機能です。
重要: 型ヒントはあくまで「ヒント」であり、Pythonのインタプリタはこれを実行時に強制しません。しかし、エディタや静的解析ツールがこのヒントを解釈し、型の不一致を開発段階で警告してくれるため、コードの可読性と堅牢性が大幅に向上します。
>>> # nameはstr型、ageはint型を期待し、戻り値はstr型であることを示す >>> def create_user_profile(name: str, age: int) -> str: ... return f"ユーザー名: {name}, 年齢: {age}" ... >>> # 正しい使い方 >>> user1 = create_user_profile("田中", 35) >>> user1 'ユーザー名: 田中, 年齢: 35' >>> # 変数にも型ヒントを付けられる >>> user_id: int = 101 >>> # --- 型ヒントに反する使い方 --- >>> # 静的解析ツールは警告を出す可能性があるが、実行はできてしまう >>> user2 = create_user_profile("鈴木", "25歳") # ageに文字列を渡している >>> user2 'ユーザー名: 鈴木, 年齢: 25歳'
静的型付け言語の経験者にとって、型ヒントは馴染みやすく、動的言語の柔軟性と静的解析の安全性を両立させるための強力なツールとなるでしょう。
この章では、Pythonの構文の基礎となるインデントルール、柔軟な動的型付け、そして基本的なデータ型について対話モードで確認しながら学びました。特にf-stringと型ヒントは、モダンなPython開発における必須知識です。
次の章では、複数の要素をまとめて扱うための強力なデータ構造であるリストとタプルについて詳しく見ていきます。