カテゴリ: Python 更新日: 2026/03/24

Pythonの変数宣言の方法とは?型ヒント(type hints)の使い方

Pythonの変数宣言の方法とは?型ヒント(type hints)の使い方
Pythonの変数宣言の方法とは?型ヒント(type hints)の使い方

先生と生徒の会話形式で理解しよう

生徒

「Pythonで変数ってどうやって作るんですか?『宣言』っていう言葉もよく聞きます。」

先生

「Pythonの変数宣言はとてもシンプルなんですよ。それに、型ヒント(type hints)を使うことで、どんな種類のデータを扱っているかも明確になります。」

生徒

「型ヒントってなんだか難しそうですね……」

先生

「大丈夫。今回はPythonの変数の使い方と型ヒントの基本を、初心者でもわかるようにやさしく解説していきます!」

1. Pythonの変数とは?宣言と代入の基本

1. Pythonの変数とは?宣言と代入の基本
1. Pythonの変数とは?宣言と代入の基本

プログラミングにおける変数(へんすう)とは、データに名前をつけて一時的に保存しておく「箱」や「ラベル」のようなものです。Pythonでは、他の言語のように「これから変数を使います」という難しい宣言は不要で、値を入れた瞬間に変数が作成されるという直感的な仕組みになっています。

まずは、最も基本的な書き方を見てみましょう。未経験の方でも、以下のコードで何が行われているかイメージできるはずです。


# 変数「name」に文字列を代入
name = "たろう"

# 変数「age」に数値を代入
age = 20

# 変数「is_student」に真偽値を代入
is_student = True

このコードにある「=」は、算数の「等しい」という意味ではなく、「右側のデータ(値)を、左側の名前(変数)に割り当てる」という代入の操作を意味します。この1行を書くだけで、Pythonは自動的にメモリ上に箱を用意し、名前をつけてデータを保管してくれます。

例えば、name = "たろう" と書けば、それ以降のプログラムの中で name と書くだけで「たろう」というデータを何度でも呼び出すことができます。もし値を書き換えたいときは、再度 name = "じろう" のように新しい値を代入するだけで中身を更新できるため、非常に柔軟です。

2. 変数に使える名前のルール(命名規則)

2. 変数に使える名前のルール(命名規則)
2. 変数に使える名前のルール(命名規則)

Pythonで変数名を付けるときは、自由に決めて良いわけではなく、いくつかの「守らなければならないルール」「推奨されるマナー」があります。これを知らないと、プログラムがエラーで動かなかったり、自分でも内容が分からなくなったりします。

必ず守るべき3つの基本ルール

  • 使用できる文字: 半角の英小文字・大文字、数字、アンダースコア(_)のみです。
  • 数字から始めてはいけない: 1st_name のように数字を先頭に使うとエラーになります。name_1 ならOKです。
  • 予約語は使えない: Pythonが特別な意味として予約している単語(if, for, while, True など)は変数名にできません。

初心者におすすめ!読みやすい名前の付け方

プログラムは「動くこと」と同じくらい「読みやすさ」が重要です。例えば、後でコードを見返したときに a = 100 と書いてあっても、それが「価格」なのか「年齢」なのか分かりませんよね。そのため、中身が想像できる具体的な英単語を使いましょう。


# 良い例:中身がわかる
item_price = 1200
user_age = 25

# 悪い例:中身がわからない
x = 1200
a = 25

# 2つの単語をつなぐときは「_(アンダースコア)」でつなぐ(スネークケース)
# 例:user_name, total_score, is_active

Pythonの世界では、user_name のように単語をアンダースコアで区切る「スネークケース」という書き方が一般的です。また、日本語(全角文字)を変数名に使うことも技術的には可能ですが、文字化けやトラブルの原因になるため、実務や学習では避けるのが鉄則です。

3. Pythonは動的型付け言語

3. Pythonは動的型付け言語
3. Pythonは動的型付け言語

Pythonは動的型付けという特徴を持っています。これは、変数の型(データの種類)を宣言しなくても自動で判別してくれるということです。


number = 10
message = "こんにちは"

numberには整数(int)、messageには文字列(str)が入っていますが、Pythonが自動で判断してくれます。

4. 型ヒント(type hints)とは?

4. 型ヒント(type hints)とは?
4. 型ヒント(type hints)とは?

型ヒントとは、「この変数はどんな型のデータを扱うのか」を明示するための仕組みです。Python3.5以降で使えます。

基本の書き方は、変数名: 型 = 値 です。


name: str = "たろう"
age: int = 20
height: float = 175.5

型ヒントはプログラムの動作には影響しませんが、コードの見やすさや予期しないミスを減らすのに役立ちます。

5. よく使う基本の型ヒント一覧

5. よく使う基本の型ヒント一覧
5. よく使う基本の型ヒント一覧

Pythonでよく使う型ヒントは次のとおりです。

  • int:整数(例:1, -3)
  • float:小数(例:3.14)
  • str:文字列(例:"こんにちは")
  • bool:真偽値(TrueかFalse)
  • list:リスト(例:[1, 2, 3])
  • dict:辞書(例:{"名前": "たろう"})

Python3.9以降では、list[int]dict[str, int]のように中身の型まで書けます。

6. 関数でも使える型ヒント

6. 関数でも使える型ヒント
6. 関数でも使える型ヒント

型ヒントは関数にも使えます。引数や戻り値の型を示すことで、関数の使い方が分かりやすくなります。


def greet(name: str) -> str:
    return "こんにちは、" + name + "さん!"

name: strは引数の型、-> strは戻り値の型を表しています。

7. ListやDictを使う型ヒント

7. ListやDictを使う型ヒント
7. ListやDictを使う型ヒント

リストや辞書など複雑な型にヒントをつけたい場合、Python3.9以前ではtypingモジュールが必要です。


from typing import List, Dict

numbers: List[int] = [1, 2, 3]
profile: Dict[str, str] = {"名前": "たろう", "趣味": "ゲーム"}

Python3.9以降なら、次のように書けます:


numbers: list[int] = [1, 2, 3]
profile: dict[str, str] = {"名前": "たろう", "趣味": "ゲーム"}

8. Optional型とNoneの使い方

8. Optional型とNoneの使い方
8. Optional型とNoneの使い方

「値があるかもしれないし、ないかもしれない」場合には、Optional型を使います。これは、None(値が存在しないこと)を許容するという意味です。


from typing import Optional

nickname: Optional[str] = None

また、関数が値を返さない場合は、戻り値の型をNoneにします。


def say_hello(name: str) -> None:
    print("こんにちは、" + name + "さん!")

まとめ

まとめ
まとめ

Pythonにおける変数の宣言方法と、型ヒント(type hints)の使い方について学んできました。Pythonの変数宣言はとてもシンプルで、代入するだけで変数が作られます。この手軽さがPythonの魅力のひとつですが、同時に動的型付けという特徴によって、予期しない型の値が代入されるリスクもあります。そこで登場するのが型ヒント(type hints)です。

型ヒントを使えば、変数や関数のデータ型を明示でき、可読性や保守性が向上します。特に複数人で開発する場合や、大規模なプログラムになると、どんな型が使われているかを明示することでバグの予防や効率的なデバッグに役立ちます。

また、Python3.9以降では、リストや辞書の中のデータ型も明示できるようになり、より直感的でわかりやすくなっています。さらに、Optional型を使えば、値があるかもしれないし、ないかもしれないという場面に対応できるため、実践的な型の表現も可能です。

関数における型ヒントの活用も見逃せません。引数や戻り値に型を指定することで、関数の使い方が明確になり、補完機能を持つエディタとの相性も良くなります。初心者のうちから型ヒントの書き方に慣れておくことで、将来的にも読みやすく安全なコードを書く力が身につきます。

以下は、学んだ内容を整理したPythonのサンプルコードです。


from typing import List, Dict, Optional

# 基本の型ヒント
name: str = "たろう"
age: int = 20
height: float = 175.5
is_student: bool = True

# 関数に型ヒント
def greet(name: str) -> str:
    return f"こんにちは、{name}さん!"

# リストや辞書
scores: List[int] = [85, 90, 78]
profile: Dict[str, str] = {"名前": "たろう", "趣味": "ゲーム"}

# Optional型
nickname: Optional[str] = None

# 戻り値がない関数
def say_hello(name: str) -> None:
    print(greet(name))
先生と生徒の振り返り会話

生徒

「Pythonの変数ってこんなに簡単に作れるんですね。でも型ヒントっていうのは少し難しかったかも……」

先生

「最初はそう感じるかもしれませんが、型ヒントを使うことでコードの意味がはっきりして、バグも減らせるんですよ。プログラムを書くうえでの安心材料になります。」

生徒

「たしかに、関数に型がついてると読みやすかったです。list[int]とかdict[str, str]も意味がよくわかるようになってきました!」

先生

「そうそう。今後の学習でも型ヒントはどんどん登場するので、今回の内容をしっかり理解しておくと役に立ちますよ。Optional型も便利なのでぜひ活用していきましょう。」

生徒

「はい!なんとなく難しそうって思ってたけど、使いどころや意味がわかると、ちゃんと役に立つものなんですね!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Pythonで変数を宣言する方法が知りたいです。初心者でもわかる書き方はありますか?

Pythonの変数宣言はとても簡単で、イコール記号(=)を使って値を代入するだけです。例えば、name = "たろう" のように書くだけで変数が作られます。

Pythonで変数名に使ってはいけないルールや禁止事項はありますか?

変数名には英数字とアンダースコアのみ使えます。数字で始めることや、ifやforなどの予約語を使うことは禁止されています。

Pythonの型ヒント(type hints)って何のために使うんですか?

型ヒントは、変数や関数がどのような型のデータを扱うかを明示するために使います。コードの読みやすさが上がり、ミスを防ぎやすくなります。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
PythonでREST APIを作る方法!初心者向けFastAPI入門|Python API開発の基本
New2
PHP
PHPのコード品質向上ツール完全解説!PHPStan(ピーエイチピースタン)とPHPCS(ピーエイチピーシーエス)で初心者でも安全にデバッグしよう
New3
Python
Pythonでデータベースのログを記録・監視する方法を完全解説!初心者向けデータベースログ管理入門
New4
PHP
PHPのログファイルを活用したエラートラッキング完全ガイド|初心者でもわかるPHPデバッグ入門
人気記事
No.1
Java&Spring記事人気No1
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.2
Java&Spring記事人気No2
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.3
Java&Spring記事人気No3
Python
Pythonのインストール&環境構築!Windows・Mac・Linuxでの手順を初心者向けに解説
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.6
Java&Spring記事人気No6
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonでデータベースの接続プールを使う方法を徹底解説!初心者向けPythonデータベース接続プール入門
No.8
Java&Spring記事人気No8
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い