カテゴリ: Python 更新日: 2026/01/06

Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説

Pythonで定数を定義する方法!変更されない変数の書き方と命名ルール
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルール

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

生徒

「Pythonで数字や名前を固定して使いたいときって、どうすればいいんですか?定数ってあるんですか?」

先生

「いい質問ですね。Pythonには“定数”専用の文法はありませんが、定数っぽく扱う方法があります。命名のルールや注意点を学べば、ちゃんと定数として使えますよ!」

生徒

「そうなんですね!他の言語みたいに、constとかfinalとかはないんですか?」

先生

「その通り、Pythonには書き換え禁止にする機能はありません。でも、大文字で書くことで“これは変更しない値ですよ”という合図になります。では詳しく見ていきましょう!」

1. Pythonにおける定数とは?

1. Pythonにおける定数とは?
1. Pythonにおける定数とは?

Pythonには、他のプログラミング言語にあるような「絶対に変更できない定数」を作るための専用構文は用意されていません。 そのためPythonでは、文法で制限するのではなく、開発者同士の共通ルールとして「この値は変更しない」と決めて使うのが基本的な考え方になります。 これが、Pythonにおける定数の特徴です。

具体的には、変数名をすべて大文字で書くことで、「この変数は定数として扱うものですよ」という意思表示をします。 プログラムを読む人が見ただけで用途を理解できるため、初心者の方でもコードの意味を追いやすくなります。


# 円周率を定数として定義
PI = 3.14159

# 最大人数を表す定数
MAX_USERS = 100

# アプリ名を表す定数
APP_NAME = "MyApp"

このように定義された値は、計算や表示などで何度も使われることが多く、 毎回数値や文字列を直接書くよりも、意味が分かりやすくなります。 「途中で値が変わらない前提のデータ」は、定数としてまとめておくと、 プログラム全体の見通しが良くなり、ミスの防止にもつながります。

2. 定数の命名ルール(スタイル)

2. 定数の命名ルール(スタイル)
2. 定数の命名ルール(スタイル)

Pythonでは、定数として使う値はすべて大文字で書き、単語の区切りにはアンダースコア(_)を使うのが一般的です。 これはPythonのスタイルガイドであるPEP8に沿った書き方で、「ここは変えない前提の値です」と読み手に伝える役割があります。 変数名の付け方が整っていると、コードを見返したときに意味がすぐ分かり、チーム開発でも混乱が減ります。

たとえば「最大サイズ」「初期色」「あいさつ文」のように、用途がはっきり分かる名前にしておくと便利です。 逆に、短すぎる名前や意味があいまいな名前にすると、後から見たときに何の値か分からなくなりがちです。

  • MAX_SIZE
  • DEFAULT_COLOR
  • WELCOME_MESSAGE

初心者の方でも試しやすいように、定数らしい名前を付けた簡単な例を見てみましょう。


# 画面に表示するタイトル(変えない前提の文字)
APP_TITLE = "かんたん家計メモ"

# 消費税率(変えない前提の数値)
TAX_RATE = 0.1

# 1日に入力できる回数の上限
MAX_INPUT_COUNT = 5

print(APP_TITLE)
print(TAX_RATE)
print(MAX_INPUT_COUNT)

このように大文字とアンダースコアで統一しておくと、「定数として扱う値」がひと目で分かります。 名前だけで役割が伝わるので、Pythonの辞書やリスト、関数と組み合わせて使うときも読みやすいコードになります。

3. 定数も実は書き換えできてしまう?

3. 定数も実は書き換えできてしまう?
3. 定数も実は書き換えできてしまう?

残念ながら、Pythonでは定数として扱っているつもりの値でも、普通の変数と同じように上書きできてしまいます。 つまり「大文字で書いたから変更できない」という仕組みではなく、あくまで見た目で分かる目印に近いものです。 そのため、うっかり代入してしまうと、気づかないうちに動きが変わってしまうことがあります。

たとえば、円周率のように本来は変えないはずの値を途中で書き換えると、計算結果が変わってしまい、 バグの原因になります。まずは「Pythonの定数は守る約束ごと」という点を押さえておきましょう。


PI = 3.14159
print("最初のPI:", PI)

# ここでうっかり上書きすると…
PI = 3
print("上書き後のPI:", PI)

# PIを使う計算も結果が変わってしまう
radius = 2
area = PI * radius * radius
print("半径2の円の面積:", area)

最初のPI: 3.14159
上書き後のPI: 3
半径2の円の面積: 12

この例では、PIを上書きしたことで面積の計算結果も変わっています。 だからこそ、定数らしい名前(大文字)を見かけたら、途中で代入しないことが大切です。 Pythonでは定数を守るのは開発者のマナーなので、書き換えない意識を持って使いましょう。

4. 定数を使うメリット

4. 定数を使うメリット
4. 定数を使うメリット

定数を使うことで次のような良い点があります:

  • コードが読みやすくなる
  • 意味が明確になる(例:TAX_RATE = 0.1
  • 同じ値を何度も使うときに間違いが減る
  • 途中で変更する必要があっても、1カ所直せば済む

5. 定数をグループでまとめる方法(補足)

5. 定数をグループでまとめる方法(補足)
5. 定数をグループでまとめる方法(補足)

定数がたくさんある場合は、専用のファイル(たとえばsettings.py)を作ってそこにまとめるのもおすすめです。


# settings.py
APP_TITLE = "スプラ学習アプリ"
VERSION = "1.0.0"
MAX_SCORE = 9999

他のファイルからは次のように使えます。


import settings

print(settings.APP_TITLE)

6. Pythonでも定数を厳密に守る方法はある?

6. Pythonでも定数を厳密に守る方法はある?
6. Pythonでも定数を厳密に守る方法はある?

Pythonでも「本当に変更できないようにしたい!」という場合は、typing.Finalを使う方法もあります(Python3.8以降)。


from typing import Final

PI: Final = 3.14159
PI = 3  # これはmypyなどでエラーになります

Python本体は何も言いませんが、mypyでチェックすれば変更を防げます。

まとめ

まとめ
まとめ

Pythonで定数を扱うときに意識したいのは、「Pythonには定数という仕組みが存在しない」という点と、それでも開発の中で値を固定して扱いたい場面が多く存在するという現実です。この記事で学んできたように、Pythonでは大文字で変数名を書くことで「この値は変えません」という意思を読み手に示します。これは長年のPython文化として定着しており、実務でも広く使われています。

Pythonのコードは柔軟性が高く、変数を書き換えることも簡単にできてしまいます。そのため、定数として扱いたい値を書き換えないように気を付けるのは、開発者自身の判断とマナーに委ねられています。定数を使う目的はただの「固定値」としてではなく、コードの意味を明確にし、読みやすくし、ミスを防ぐためにあります。たとえば、単なる数字では意味が伝わりにくい値でも、TAX_RATEMAX_USERSという名前がついていれば、それが何を表すか一目で理解できます。

また、複数の場所で同じ値を使う場合には定数としてまとめておくことで、後から変更が必要になったときに一箇所修正するだけで済みます。これにより、管理しやすいコードになり、複雑なプログラムでも整合性を保ちやすくなります。特にプロジェクトが大きくなるほど、こうした整理された書き方は品質を保つために大きく役立ちます。

Pythonでは、定数を専用のファイルにまとめて管理する方法もよく使われています。たとえばsettings.pyconfig.pyなどにまとめておくと、複数ファイルで共有しやすく、プログラムの構成も分かりやすくなります。扱う値が増えてきた場合は、早い段階でこうした構造を導入すると、後々コードの整理がとても楽になります。

さらに厳密さが求められる場合には、typing.Finalを使用して「これは絶対に変更してはいけない値」という意図を明確に示す方法もあります。mypyなどの型チェックツールを併用すれば、誤って書き換えてしまった場合に警告が出るため、チーム開発でも安心して扱えます。

定数の扱いをより理解するサンプルコード

定数を整理して使うときのイメージがつきやすいように、シンプルなサンプルを掲載します。


# 定数ファイル constants.py として定義する例
APP_TITLE = "サンプル学習アプリ"
DEFAULT_LANGUAGE = "日本語"
MAX_LOGIN_COUNT = 5

# メインファイル
import constants

print(constants.APP_TITLE)
print("使用言語:", constants.DEFAULT_LANGUAGE)
print("最大ログイン回数:", constants.MAX_LOGIN_COUNT)

このように、定数をまとめて管理することでコードの見通しが良くなり、どの値が固定で使われているのかがはっきりします。さらに、機能追加や修正の際にも、定数ファイルを見れば値の一覧が確認できるため、効率良く作業を進められます。シンプルな作業でも、こうした整理された書き方を心がけることで、結果的に保守性の高いプログラムに仕上がります。

今回の記事で学んだ内容は、Python初心者がつまずきやすいポイントでありながら、長く使い続ける基礎となる考え方です。定数を正しく扱い、コードに意味をもたせる習慣を早い段階で身につけることで、その後の学習や実務にも大きな効果を発揮します。大文字の変数名を見るだけで「これは固定値だ」と理解できるようになれば、コードの読み方も一段階深まります。

プログラム全体の品質を向上させるためにも、定数の使い方を意識しながら実際に手を動かし、さまざまな値を扱ってみてください。コードを読みやすくし、間違いを防ぎ、変更に強い構造にするための第一歩が「定数の理解と活用」です。シンプルですが、とても大切な知識なので、ぜひ実際のコードで使ってみましょう。

先生と生徒の振り返り会話

生徒

「Pythonには定数がないって聞いて驚いたけど、大文字で書けば定数っぽく扱えるんですね!」

先生

「そうですね。Pythonは柔軟な言語なので仕組み自体はありませんが、読みやすさのために大文字で統一する文化があるんですよ。」

生徒

「定数をまとめてファイルにする例も分かりやすかったです。プロジェクトで管理しやすそう。」

先生

「その気づきはとても大切です。値が増えるときほど整理と統一が役立ちますからね。」

生徒

「typing.Finalもすごく便利そう…。厳密に守りたいときに使ってみます!」

先生

「ぜひ活用してください。今回学んだことは、Pythonを扱ううえでしっかり役立つ知識になりますよ。」

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

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

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

Pythonに定数はないのですか?定数の定義方法を教えてください。

PythonにはJavaやC言語のような厳密な定数(constやfinal)の仕組みはありませんが、代わりに「定数っぽく扱う」ためのルールがあります。Pythonで定数を定義する場合は、変数名をすべて大文字にして定義するのが一般的です。たとえば、PI = 3.14 のように書くことで、「この変数は定数として使いますよ」という意味を持たせることができます。
カテゴリの一覧へ
新着記事
New1
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New2
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
New3
Flask
FlaskでCSRF対策を実装する方法!安全なフォーム送信を学ぼう
New4
Python
Pythonの文字列型(str)を完全解説!連結・分割・検索の方法を紹介
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.5
Java&Spring記事人気No5
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.6
Java&Spring記事人気No6
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.7
Java&Spring記事人気No7
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.8
Java&Spring記事人気No8
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説