【初心者向け】Python変数の使い方徹底ガイド|宣言・再代入・削除・命名規則を解説
Pythonの変数は、プログラム内に値を保存するための仕組みです。変数は「ラベル(名前)」と「値」の2つの要素で構成され、この2つは等号(=)で結ばれます。プログラム中ではラベルを使って、その変数に代入された値を参照できます。また、変数が保持する値は後から自由に変更可能です。
変数はプログラミングに欠かせない存在です。変数を使えば、特定の名前と紐づけてデータをプログラム内に保存できます。
たとえば、地元のスーパーで販売されているチョコレートの一覧を保存する chocolate という変数を作ったり、ゲームアプリでユーザー名を保存する username という変数を作ったりできます。
このチュートリアルでは、具体例を交えながら変数の基礎知識と、Pythonコードでの変数の使い方を解説します。
Python変数とは?
Pythonの変数とは、ある値に対して付けられた一意の識別子(名前)のことです。変数に割り当てた名前を使えば、その変数に代入された値を参照できます。また、プログラムの中で変数の値は何度でも変更できます。
イメージとしては、変数はPythonプログラム内の特定の値に結び付けられた「ラベル」のようなものです。
Python変数の基本的な構文は次のとおりです。
chocolate = "Hazelnut"
この変数は3つの部分で構成されています。
- chocolate は変数の名前です。
- = は代入演算子です。「chocolate」というラベルに値を代入したいことをプログラムに伝えます。
- "Hazelnut" は変数に代入する値です。この場合、値はPythonの文字列オブジェクトであり、ダブルクォート(")で囲まれた部分が文字列であることを示します。なお、文字列はシングルクォート(')で囲んで宣言することもできます。
変数で扱えるデータ型には、Pythonのブール値(True/False)、辞書型、整数、浮動小数点数などがあります。
Pythonでの変数の宣言
例として、数学アプリを開発していて、コード内で何度も「3652」という数字を使う場面を考えてみましょう。毎回手入力する代わりに、次のように変数に格納しておくことができます。
big_number = 3652
これで big_number という名前の変数を宣言し、値3652を代入しました。以降、コード内で big_number を参照すれば、いつでも値3652にアクセスできます。
これが変数の「宣言」です。
変数を宣言したら、プログラム全体で自由に使えます。たとえば、変数に何が格納されているか確認したい場合は、次のコードを実行します。
print(big_number)
文字列を格納する変数の例
変数には数値だけでなく、あらゆるデータ型を格納できます。たとえば、ユーザーのメールアドレスを変数に保存したい場合は、先ほどの big_number と同じ要領で宣言できます。文字列を格納する変数の例は次のとおりです。
email = "user.email@gmail.com"
このコードでは、email という変数を作成し、値 user.email@gmail.com を格納しています。変数に代入された値を確認したいときは、Pythonコンソールに出力しましょう。
print(email)
実行結果:
user.email@gmail.com
変数への再代入
ここまで、変数の宣言方法――つまり変数に初期値を代入する方法――を見てきました。
Pythonの変数は後から変更できます。つまり、一度宣言した変数でも、保持している値を書き換えられるのです。
変数の値を変更できるのは非常に便利な機能です。たとえば、コードでユーザー入力を受け付ける場合、デフォルト値をユーザーが入力した値に置き換えたいことがありますよね。
次の変数を見てください。
username = "lassiter202" print(username)
この変数の名前は「username」で、コードの出力は lassiter202 です。ここで、ユーザー名を lassiter303 に変更したい場合は、次のように書きます。
username = "lassiter202" print(username) username = "lassiter303" print(username)
最終的な出力は lassiter303 になります。プログラムの開始時点では、変数 username には lassiter202 が格納されているため、最初のprintでは lassiter202 が出力されます。
その後、コード内で username 変数の値を lassiter303 に再代入しています。これにより変数の値が更新されるため、再度出力すると新しい値 lassiter303 が返されます。
複数の変数に値を代入する
これまでのコードでは、1行につき1つの変数に1つの値を代入してきました。
しかしPythonでは、「多重代入(multiple assignment)」というテクニックを使えば、1行で複数の変数に値を代入することも可能です。
たとえば、次の値をそれぞれの変数に代入したいとします。
- espresso は 2.10
- latte は 2.75
- cappuccino は 2.60
この場合、次のようなコードで各変数に対応する値を代入できます。
espresso, latte, cappuccino = 2.10, 2.75, 2.60 print(espresso) print(latte) print(cappuccino)
実行結果:
2.10 2.75 2.60
変数名と代入したい値をカンマで区切って並べることで、1行で3つの変数すべてに値を代入できました。
同様に、同じ値を複数の変数にまとめて代入することもできます。
たとえば、count1、count2、count3 の3つの変数すべてに値「1」を代入したい場合は、次のように書きます。
count1 = count2 = count3 = 1 print(count1) print(count2) print(count3)
実行結果:
1 1 1
すべての変数に値「1」が代入されました。
こうした代入方法はコードを短くできるため便利ですが、使い方には注意が必要です。
多重代入が多すぎてコードが読みにくくなっていると感じたら、いくつか削って通常の代入に戻すのもよいでしょう。コードの可読性を保つことが大切です。
また、指定する値の数はラベル(変数名)の数と一致させる必要があります。あるいは、複数のラベルに対して1つの値を指定する形でも構いません。たとえば「ラベル2つに対して値7つ」という指定はできません。Pythonはどの値をどのラベルに割り当てればよいか判断できないためです。
Python変数の削除
Pythonで変数を削除したい場面もあるでしょう。
その場合は、delステートメントを使用します。delキーワードを使うと、リストやリストの要素、変数といったオブジェクトを削除できます。
たとえば、username という変数を削除したい場合は、次のように書きます。
username = "linda101" del username print(username)
実行結果:
NameError: name 'username' is not defined
username 変数の値を出力しようとした時点でエラーが発生しました。これは、delキーワードによって変数を削除したためです。del username が実行された瞬間に変数は削除され、それ以降コード内で値を保持しなくなります。
Python変数の命名方法
プログラミング言語ごとに、変数の命名に関するベストプラクティスがあります。
スタイルのルール
Pythonで変数に名前を付けるときは、次のルールを守りましょう。
- 使用できるのは英数字とアンダースコア(_)のみ。
- 変数名を数字で始めてはならない。
- スペースを含んではならない。
たとえばユーザーのメールアドレスを保存するなら、email や email_address という変数名は問題ありません。しかし、email address(スペース入り)や &email_address(記号入り)という名前は使えません。
変数のスタイル
Pythonには、命名に関する推奨スタイルもいくつかあります。
- 変数名を大文字で始めない。
- キャメルケースは避け、単語の区切りにはアンダースコアを使う。
たとえば EmailAddress という変数名はベストプラクティスとは言えません。大文字で始まっているためです。技術的には有効な名前ですが、多くの開発者は変数名を小文字で始めることを好みます。
emailAddress も有効な名前ですが、やはり推奨されません。キャメルケース(2語目以降が大文字で始まる表記)を使っており、単語をアンダースコアで区切っていないためです。
大文字・小文字の区別
Pythonの変数名は大文字と小文字が区別されることにも注意しましょう。たとえば email_address と emailAddress は、表記のケースが異なるため、別々の変数として扱われます。とはいえ、紛らわしい名前は避け、似通った変数名を付けないようにするのが賢明です。うっかり混同すると、思わぬバグの原因になりかねません。
適切な名前を選ぶ
上記のルールに従えば、変数名はPythonに受け入れられます。しかし、それだけでは不十分です。変数には「適切な名前」を選ぶべきです。選ぶ名前は理解しやすく、その変数の目的を反映したものであるべきです。
たとえばユーザーのメールアドレスを保存するなら、email は良い変数名です。一方 user_identifier は曖昧です。「ユーザーを識別するもの」なら何でも当てはまり得るため、メールアドレス専用の変数名としてはふさわしくありません。
まとめ
Pythonの変数は、プログラム内に値を保存するためのものです。変数の名前を参照すればその値にアクセスでき、値はプログラムの途中で何度でも変更できます。変数は「name = value」という構文で宣言します。
変数を活用すれば、同じ値をコード内で繰り返し書く必要がなくなり、プログラムをすっきりと保てます。
このチュートリアルでは、Pythonコードで変数を使う方法を解説しました。これであなたも、Pythonエキスパートのように変数を扱えるようになったはずです。
チャレンジ
理解度を確かめるために、次の条件を満たす変数を宣言してみましょう。
- 変数名は「score」にする。
- 値は 9 にする。
続いて、算術演算子を使って「score」の値を2倍にし、結果をコンソールに出力してください。
次に、以下の3つの変数を宣言してみましょう。
- student1grade
- student2grade
- student3grade
これらの変数はすべて値「A」を持つものとします。3つの変数は同じ値を持つため、1行でまとめて宣言してください。
おすすめのオンラインPython書籍、講座、その他の学習リソースについては、完全版の「Pythonの学び方ガイド」をご覧ください。
-
PythonでHello Worldを表示する方法:初心者向けステップバイステップガイド
Pythonの「Hello World」プログラムは、多くのプログラマーが最初に書くプログラムです。print文を使って文字列をコンソールに表示するだけのシンプルなもので、コードは print(Hello World) の1行のみです。 Pythonが正しくインストールされているかを確認するには、まず「Hello World」を書いてみるのがおすすめです。作成方法は主に2つあります。ターミナル(コマンドライン)を使う方法と、Visual Studio CodeやVimなどのコードエディタを使う方法です。 始める前に、お使いのマシンにPython 3がインストールされていることを確認しておき
-
【Python】変数名を文字列として取得する方法とその注意点
Pythonにおける変数名の仕組み 実は、Pythonでは「変数名を取得する」という操作は本来想定されていません。なぜなら、Pythonの変数とはオブジェクトへの名前のマッピング(参照)にすぎないからです。 Pythonにおいて正規名(canonical name)を持つのは、モジュール、関数、クラスのみです。さらに、関数やクラスが定義された後、あるいはモジュールがインポートされた後に、その正規名が任意の名前空間で意味を持つ保証はありません。加えて、これらの名前はオブジェクト生成後に変更されることもあるため、必ずしも信頼できるものではない点に注意が必要です。 変数名を文字列として取得する方法