変数とは
変数とは、値の出し入れができる箱のようなもので自由に名前を指定することができます。
この説明だけじゃざっくりしていてよくわかりませんよね、実際に変数を利用した例を見てみて順を追って理解していきましょう。
ちなみにpythonにおける変数は他のプログラム言語のように型の宣言は必要ありません。
また、当サイト(In-Output)では、どの部分が変数でどの部分が関数なのかわかりやすくするために変数名は「h」と記載します。
複数の変数を使用する場合は「h1」「h2」と記載しますが、変数名は一定のルールがありますが、ほぼ自由に付けることができます。
変数の使用例を見てみよう
前回、文字列と数値の出力をおこないましたので、今回は変数を使って同じような事をしてみましょう。
h = "こんにちは" print(h)
h = 5 print(h)
h1 = 5 h2 = 10 print(h1 + h2)
※プログラミングにおける「=」は同じという意味ではありません。
「h1 = 5」と書かれていたら「h1」に「5」を代入するという風に覚えましょう
何故「=」は同じという意味で使えないのか?
下記のコードを用いて説明します。
h = 5 h = h + 10 print(h)
このコードの実行結果は「15」となります。
もし「=」が同じという意味なら上記の式は成立しません。
変数は上書きを行うことができますので、最終的に変数「h」は「15」となります。
何故変数を利用するのか?
変数を利用すると、プログラムを再利用しやすくなったり、修正や変更を用意に行うことができます。
例として、次のコードを見てみましょう。
print("田中さんおはようございます") print("田中さんこんにちは") print("田中さんこんばんは")
そこで、変数を使いコードを使いまわしましょう。
h = "田中" print(h + "さんおはようございます") print(h + "さんこんにちは") print(h + "さんこんばんわ") h = "中田" print(h + "さんおはようございます") print(h + "さんこんにちは") print(h + "さんこんばんわ")
田中さんこんにちは
田中さんこんばんわ
中田さんおはようございます
中田さんこんにちは
中田さんこんばんわ
変数の名前のルール
変数は自由に名前を付けることができますが、いくつかのルールがあります。
このルールは変数だけに限らず、クラスや関数等に名前を付ける際も同様のルールとなりますので、覚えておきましょう。
これらの名前を付けられた変数や関数の事を識別子と呼びます。
識別子に使える文字
識別子はアルファベットの大文字、小文字、アンダースコア、半角数字が使用できます。
注意点として、数字は識別子の頭には使えません。
「h1」や「h2」のように名づけることは可能ですが「1h」「2h」等は付けれませんので覚えておきましょう。
アンダースコアを変数の頭に使うと挙動等が変わります。
これは関数等を使用する際に用いますので、今は頭の片隅でもいれておきましょう。
日本語を変数に使用する事も可能ですが、おすすめしません。
予約語は識別子につかえません
↓の表の単語はpythonの構文で使用されますので、識別子には用いる事ができません。
※注意点として、今この表をすべて覚える必要はありません。
それぞれの使い方を学びながら「~~」は構文に使うから識別子には使えないんだ。
と覚えていけばOKです。
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 |
あまり使用しないほうが良い識別子
予約語は識別子に使えませんが、関数に使われる単語は識別子に使うことができます。
少し、複雑になってきましたね、関数については関数の項目で詳しく説明します。
これまで用いてきた「print()」実はこれもprint関数と呼ばれる関数なのです。
print = 5 print(print)
上記を実行しようとするとエラーが発生します。
これは関数名を識別子として使用した事が問題なわけではありません。
識別子として使用した関数名を関数として実行しようとしたのでエラーが発生したのです。
str = 5 print(str)
上のコードは問題なく「5」と実行されますが、「str()」という数値等を文字列として変換する関数を実行しようとするとエラーが発生します。
これはpythonが良くも悪くも関数だろうが変数だろうが単一のオブジェクトとして認識しているので発生する現象です。
これらの現象を発生させないよう、今後覚えていく関数名も識別子としては極力使わないようにしましょう。
変数の基礎問題
それでは変数の基礎問題です。出力の結果を予測しましょう。
エラーが発生する場合はエラーを予測してください。
問1:
h = 5 + 3 print(h)
- 答えを見る
- A:8 (文字列ではなく数値を値としてますので計算されています)
問2:
h + 1 = 5 print(h + 1)
- 答えを見る
- A:エラー(識別子に「+」は使えません)
問3:
h1 = "こんにちは" h2 = "田中さん" print(h1 + h2 + h1)
- 答えを見る
- A:こんにちは田中さんこんにちは (変数は繰り返し使用できます)
問4:
h = ”こんにちは” + ”こんばんは” print(h)
- 答えを見る
- A:エラー (クォーテーションが全角文字です。引っかかった人は気をつけましょう)
問5:
h = "大好きです" print(H)
- 答えを見る
- A: エラー (pythonでは小文字と大文字は別文字で扱われます)