PR

【Python】変数宣言/変数定義(型)を3分でわかりやすく解説

Python

Python①変数宣言の基本②データ型の基本を3分でわかりやすく解説します。

参考 変数とは?

変数とは、コンピュータプログラム内でデータを一時的に保存するための記憶領域を指し示すもの。変数は、データを保持する「箱」のようなものと考えることができます。

このページではPython初心者向けに変数宣言(変数定義)の基本・考え方をサンプルコード付きでわかりやすくご説明します。

このページで学べる内容
  • 【前提】変数とは?
  • Pythonにおける変数の宣言方法
  • 変数の命名ルール
  • 変数のデータ型―動的型付けについて
  • 変数の削除(廃棄)方法

Pythonエンジニアを目指す方であれば知らないと恥ずかしい超基本知識です。是非最後までご覧ください。

参考 Pythonの文法ルール

スポンサーリンク

【前提】変数とは?

プログラミングにおける変数(variable)とは、データを扱うメモリ領域のことを指します。

メモリ領域というと言葉が難しいですが、変数は「箱」に例えて考えるとわかりやすくなります。

変数には、例えば数字や文字列、日付など様々な値を入れることができます。
図1:変数とは?

この「箱」には、数字や文字列、日付などの様々な値を入れることができます。

「箱」の中の値を足し算してみたり、「箱」の中の値を画面に表示させてみたり、「箱」の中の値に応じて処理を変えてみたり、様々な用途で利用することができます。

Python:変数の宣言方法

Pythonでは、変数を宣言する際には特別なキーワードを必要とせず、単純に変数名とその値を等号(=)を使って結びつけます。

早速、具体的なサンプルコードを見てみましょう。

# 変数の宣言と代入
x = 5    # 整数型の変数
y = 3.14 # 浮動小数点型の変数
z = "Hello, World!" # 文字列型の変数

変数と初期値を=(イコール)で結ぶだけでOK。上記の例では、整数値5を変数xに、浮動小数点数3.14を変数yに、そして文字列"Hello, World!"を変数zにそれぞれ代入しています。

ページ後半で解説しますが、Pythonは動的に型付けをしてくれるので、データ型の指定は不要です。

参考 データ型とは?

変数宣言のみ(None)

Pythonは動的型付け言語であるため、変数を宣言するときには初期値を設定することが一般的です。

上記で解説した通り、変数はその値を代入することで自動的に作成され、その時点で初期値が設定されます。

# 変数の宣言と代入
x = 5    # 整数型の変数
y = 3.14 # 浮動小数点型の変数
z = "Hello, World!" # 文字列型の変数

しかし、実際には変数を宣言する際に具体的な値がわからない、または後で値を設定したいという状況もあります。そのような場合、Noneを初期値として設定することができます。NoneはPythonにおいて、「何もない」状態を表す特殊な値です。

x = None

このコードは、xという名前の変数を作成し、その初期値としてNoneを設定しています。このxに対して後から具体的な値を設定することができます。

x = 10  # xに値10を設定

JavaScriptなど他の言語では、変数だけを宣言しておき中身はからっぽにすることもできますが、この点Pythonは少しだけ特殊です。

一度に複数の変数を宣言・定義する方法

Pythonでは、一度に複数の変数を宣言し、それぞれに異なる値を代入することが可能です。それぞれの変数とその値をカンマで区切って一行に列挙します。

x, y, z = 1, 2, 3

このコードは、xyzという3つの変数を一度に宣言し、それぞれに123という値を代入しています。

また、同じ値を複数の変数に代入することも可能です。

a = b = c = 0

このコードは、abcという3つの変数すべてに同じ値0を代入しています。

注意点としては、代入する値の数と変数の数が一致していなければならないという点。値の数と変数の数が一致しない場合、PythonはValueErrorを発生させます。

x, y = 1, 2, 3  # ValueError: too many values to unpack

上記の例では、値が3つあるのに対し、変数が2つしかないため、エラーが発生します。

同様に、値の数が変数の数より少ない場合もエラーが発生します。

x, y, z = 1, 2  # ValueError: not enough values to unpack

この例では、値が2つしかないのに対し、変数が3つあるため、エラーが発生します。

このようなエラーを避けるためにも、基本は1行で1つの変数宣言を行うようにするのがおすすめです。

Python:変数の命名ルール

Pythonにおける変数の命名ルールは以下の通りです。

変数の命名ルール
  • 文字と数字とアンダースコア
    変数名はアルファベット(大文字と小文字が区別される)、数字、アンダースコア(_)を組み合わせて作ることができます。
  • 数字から始めることはできない
    変数名は数字から始めることはできません。変数名の中に数字を含むことは可能です。例えば、variable1は有効な変数名ですが、1variableは無効な変数名です。
  • 予約語は避ける
    Pythonの予約語(ifelsewhilefor等)は変数名として使用することはできません。
  • アンダースコアから始めることができる
    変数名はアンダースコア(_)から始めることができます。通常、特殊な目的や特定の規約(例えば、プライベート変数やメソッド)のためだけに用いられる命名パターンです。
  • 大文字と小文字は区別される
    Pythonは大文字と小文字を区別します。myvariablemyVariableは異なる変数として扱われます。
  • 明確でわかりやすい名前を使用する
    プログラムの可読性を高めるために、変数名はその変数が何を表すのかを明確に示すものにする。

PythonコミュニティではPEP 8というスタイルガイドが推奨されており、その中で変数名は全て小文字で書き、単語をアンダースコアで区切ること(my_variable)が推奨されています。

以上がPythonの変数命名の基本ルールです。適切な変数名を選ぶことは、コードの可読性を高め、他の人がプログラムを理解しやすくするために重要です。

予約語とは?

予約語(またはキーワード)とは、Python言語自体の中核を形成するために特別な意味を持つ単語のことを指します。予約語は、変数名、関数名、クラス名などの識別子として使用することはできません。

参考 Pythonの主要な予約語

予約語説明
and論理AND演算子。両方の条件がTrueであればTrueを返します。
asエイリアスを作成するときに使用します。
breakループの中断を行います。
classクラスの定義を行います。
def関数の定義を行います。
if条件分岐を行います。
elseif文の条件がFalseのときに実行されます。
elif前のifまたはelif文の条件がFalseのときに評価されます。
forforループの定義を行います。
whilewhileループの定義を行います。
importモジュールをインポートします。
from特定のモジュールから特定の関数やクラスをインポートします。
return関数から値を返します。
try, except例外処理を行います。
True, False真偽値を表します。
None何もない状態を示す特別な値です。

これらの単語はPythonの文法を構成するために予約されているため、変数の名前として利用することはできません。

Python:定数定義(大文字のアルファベット)

Pythonでは、数という概念がありません。そのため、他のプログラミング言語とは異なり定数を定義するための文は存在しません。

ただし、定数が使えると便利な側面があるのも事実。そのため、Pythonでは変数を定数的に扱うことがあります。その際、定数と変数を区別する方法として、変数を定数として扱う場合には大文字で記載するというが慣例です。

もちろん、変数に大文字のアルファベットを用いて命名しても仕組み上の問題は発生しません。

# PIは円周率を表す定数
PI = 3.14159

# MAX_SIZEは配列やリストの最大サイズを表す定数
MAX_SIZE = 100
プログラミング:定数とは?

定数とは、プログラムの実行中に値が変更されることのない変数を指します。

多くのプログラミング言語には定数を定義するための特別な構文がありますが、Pythonではそのような構文が存在しません。

Python変数:動的型付け

変数の基本で学んだ通り、変数には文字型や数値型といった様々なデータ型が存在します。

参考 データ型とは?

C言語やABAPなどでは、値を代入する前にデータ型を事前に定義する必要がありましたが、Pythonでは変数を利用するタイミングで自動的にデータ型が決められます。

この自動的にデータ型が決定される仕組みを動的型付けと呼びます。

動的型付けの仕組み

以下のコードをご覧ください。

b = 100
c = "こんにちは"

この場合、変数"b" は数値型に。変数"c" は文字型として扱われます。

Pythonが動的型付け言語であるため、初期値「100」と「こんにちは」という値をPython自身が何型であるかを判断してくれるのです。

a = 1
b = 10
print(a+b)

参考 print関数の使い方

このサンプルコードの結果は「11」となります。

一方で、以下のように記述すると結果は「110」となります。

a = "1"
b = "10"
print(a+b)

変数"a" と変数"b" をPythonが文字列とみなしたため、加算ではなく「結合」をしたことによる結果です。

このように、Pythonでは変数のデータ型を強く意識する必要がありません。初心者にとっては少しだけ楽に感じれるポイントです!

ただし、全く意識しなくて良いというわけではありません。例えば、以下のように異なるデータ型の変数をあつかう際には注意が必要です。

a = 1       # 数値型
b = "2"     # 文字型
print(a+b)  # TypeError: unsupported operand type(s) for +: 'int' and 'str'
【中級者向け】動的型付けの仕組みをさらに詳しく

動的型付けとは、プログラミング言語の特性の一つで、変数のデータ型を実行時に決定する特性を指します。

つまり「プログラムが実行されるまで変数の型は確定しない」ということ。

例えば、Pythonでは以下のように、同じ変数に異なるデータ型の値を代入することが可能です。

x = 10      # xは整数型 (int)
x = "Hello" # そして今、xは文字列型 (str)

最初、xには整数値10が代入されていますが、その後xに文字列"Hello"が代入されています。これはPythonが動的型付けを行っているために可能な仕組み。

変数xの型は、それに代入される値によって動的に変わるという点を押さえておきましょう。

静的型付けの言語(例えばJavaやC++)では、変数が宣言されるときにその型が確定し、その後その型を変更することはできません。もし異なる型の値を代入しようとすると、コンパイラや実行環境がエラーを発生させます。

変数の削除:del文

一度宣言した変数は、後から削除することもできます。

変数を削除するには「del」を利用します。

a = 100
del a

print(a) # NameError: name 'a' is not defined

変数の削除(解放)を行うことで、メモリが解放されるため、よりパフォーマンスに優れた機能を実現することができます。

変数もメモリを利用するので使いすぎるとパフォーマンスを悪化させる原因となります。変数が増えすぎて、プログラムの実行速度に影響を与えていそうな場合は、「del」を用いて変数を削除するという案を考えても良いかもしれません。

ただし、よほどのことがない限り「del」は使わなさそうなので一応、こんなのもあるんだ!という豆知識程度に覚えておけばOKです。

Python:変数の使い方のまとめ

変数の基本
  • 変数定義: Pythonでは変数を使用する前に明示的な宣言や初期化は必要ない。変数の定義は値の代入によって行う。例:x = 10
  • 変数命名ルール:
    • 変数名はアルファベット、数字、アンダースコア(_)を組み合わせて作る。
    • 変数名は数字から始めることはできない。
    • Pythonの予約語(ifelsewhilefor等)は変数名として使用できない。
    • 変数名はアンダースコア(_)から始めることも可能。ただし、特殊な目的や特定の規約のために用いられる。
    • Pythonは大文字と小文字を区別する。
  • 定数:
    • Pythonには言語レベルでの定数の概念はないが、変数名を全て大文字で書くことによって、それが定数であることを示す慣習がある。
  • 動的型付け:
    • Pythonは動的型付けをサポートする言語。
    • 同じ変数に対して異なるデータ型の値を代入することが可能。

始めてPythonを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。

Pythonをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?今すぐ行動したい方は以下の記事をチェック!

読者料典 Python入門:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
Python
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました