.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. Python
  5. [Python]変数と定数の違い|サンプルコードを見ながら実際に書いてみよう

[Python]変数と定数の違い|サンプルコードを見ながら実際に書いてみよう

  • Python
  • プログラミング言語
公開日時:   更新日時:
[Python]変数と定数の違い|サンプルコードを見ながら実際に書いてみよう
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>
    システム
    エンジニア
    Pythonの変数と定数の違いって何ですか。
    プロジェクト
    マネージャー
    Pythonでは、定数を言語としてサポートしていません。基本的には全て変数なのです。

    定数とは?


    初めに定数とは何か、そして、変数と定数の違いとは何かを見比べながら定数について学んでいきましょう。定数について理解ができたら、実際にコードを書いて実践してみてください。

    変数って何?

    プログラミング言語において、データを扱うメモリ領域(値を入れておく「箱」)のことです。

    変数には「データ型」と呼ばれる型があり、その「データ型」と一致する値を格納できます。ただし、同じ変数が2つあるとプログラムエラーが発生するため、固有の名前をそれぞれに付ける必要があります。

    なお、値については何度も書き換えることが可能です。

    定数って何?

    プログラミング言語において、値をいれておく「箱のひとつ」です。

    変数同様、データを扱うメモリ領域を、必要に応じて利用できるようにするために、データに固有の名前を与えたものです。

    ただし、変数とは異なり初期の値からの変更は不可能です。中身があまり変わらないと分かっているものは、変数ではなく定数にすると良いでしょう。

    定数を扱うために必要な動きには、「初期化」と「参照」の2つがあります。

    「初期化」では、これから使用する定数の名称と対応するデータを明確にします。定数は値が変更できないため、名称の明確化(宣言)と同時にデータを関連づける(代入する)ことになります。また、場合によっては定数も変数のようにデータ型を指定することもあります。

    「参照」とは、初期化した定数を利用することです。定数は宣言時に必ず初期化しなければならないので、不正な値が使用されることはありません。

    Pythonの定数

    Pythonでは、定数を言語としてサポートしておらず、基本的には全て変数となります。しかし、変数や値を定数として宣言することはできないので気を付けましょう。

    Pythonで定数を定義する時は、定数名を全て大文字で構成します。(PEP8標準)

    ただし、このルールは、あくまで慣習的なルールのため、Pythonの定数では値を再度代入することが可能です。

    また、Pythonでは厳密に定数を作成することが不可能なため、他人が書いたコードを変更する時は、定数の中身を書き換えないよう注意しましょう。

    再度代入できてしまう例:

    コードの解説としては、AD_MAIL定数に”admin@email.com”という値を代入し、その値を出力しています。そして、AD_MAIL定数に”admin@email.co.jp”という値を再代入し、その値を出力しています。実行結果のように、メールアドレスが再代入されています。

    なお、どうしても定数を使用したい場合は、自分でも定数クラスを作れます。任意のファイル名(const.pyなど)で保存をし、モジュールとして読み込んでみましょう。

    例:クラス定数

    下記のように示します。

    コードの解説としては、NameClassという名前のクラス名を作り、NAME定数に”aiko”という値を代入してその値を出力しています。

    例:ファイル内定数

    ファイル内定数の一例として記載します。

    コードの解説としては、MIN_FILE_NUM定数に、5の値を代入してその値を出力しています。

    命名ルール

    Python(PEP8)における、命名のルールを挙げます。変数と定数の違いを見比べてみてください。なお、今回は対象が「変数」と「定数」のもののみ紹介します。

    対象が「変数」のものは、ルールで〔全小文字、アンダースコア区切り〕でなければならないと決められています。例として、〔my_favorite_rule〕のように使用されます。

    対象が「定数」のものは、ルールで〔全大文字、アンダースコア区切り、モジュールレベル(関数の外側)に書く〕でなければならないと決められています。例として、〔MY_FAVORITE_RULE〕のように使用されます。

    Pythonの予約語一覧(python3.7.3現在)

    Pyhtonの予約語は以下の通りです。

    False
    class
    finally
    is
    return
    None
    continue
    for
    lambda
    try
    True
    def
    from
    nonlocal
    while
    and
    del
    global
    not
    with
    as
    elif
    if
    or
    yield
    assert
    else
    import
    pass
    break
    except
    in
    raise

    実際に書いてみよう!

    コードの解説をしましょう。

    「COUNT = 5」で、定数を設定しています。上記で説明した通り、Pythonの定数は大文字で書いています。

    「for i in range(COUNT):」で変数iを指定し、for文を使用して定数COUNTをループ処理しています。

    「print(i)」では、変数iの値を出力しています。この時、変数iにはrange関数で設定していた範囲0~4が順番に出力されます。

    mathライブラリの定数piの使い方

    Pythonでπ(円周率)を使う方法を試してみます。mathモジュールのpi定数を使用することで、円周率πを参照できます。

    まず、mathモジュールを入力します。

    その後、

    このコードの解説としては、π/5のサイン、コサイン、タンジェントを計算しています。

    Pythonの定数モジュールをハードコーディングしないで使う方法

    Pythonの定数モジュールをハードコーディングしないで使う方法を紹介します。では、記述していきましょう。

    1つ目は、「eval」関数を使う方法です。

    Pythonで定数を表すには、定数用のモジュールを作成し、それに定数を定義します。

    しかし、都合により、この「ABC1」を使う時にハードコーディングしたくないとしましょう。

    その時は、このように使用すれば上手くいきます。

    以上、ハードコーディングしないで使う方法を紹介しました。

    システム
    エンジニア
    実際にコードを書いてみるとよく分かりますね。
    プロジェクト
    マネージャー
    ご紹介した方法を参考に、実際にコードを書きながら理解を深めてください。

    まとめ

    本記事では、変数と定数の違いを元にPythonの定数を知り、Pythonの定数を使用する際に必要なルールや、実際にどのように活用できるか紹介してきました。

    Pythonの定数を知ることができたでしょうか。

    本記事を参考に、例に挙げたような動作を実践してみてください。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    新着案件New Job