Python基礎
識別子
Pythonでも識別子を定義することができます。プログラミングでは、さまざまなモノ(クラス、関数、変数など)に対して名前をつけていく作業が発生します。
こういった名前のことを識別子と呼びます。識別子はある程度は自由に自身が決めることが可能なのですが、ある一定のルールがあり、そこから逸脱すると実行に失敗したり予期せぬ動作を引き起こすことがあります。
また、制御に利用するような特定の文字列は一般的に予約語と呼ばれ、識別子として利用することはできません。
Pythonでは予約語のことをkeywordとも呼びます。以下、Python3.8の予約語です。
False | await | else | vzimport |
---|---|---|---|
pass | None | break | except |
in | raise | True | class |
finally | is | return | and |
as | assert | async | continue |
def | del | elif | from |
global | if | for | lambda |
try | nonlocal | not | or |
while | with | yield |
定数
定数とは値の変更を許可しない変数のです。例えば、金融システムを格納する変数は価格を算出するプログラムが動作している最中に書き換わると困りますので、多くの言語では定数というものがサポートされています。Pythonに定数はありません。
慣習的に大文字の変数を定数とみなす場合がありますが、変数の書き換え自体を禁止する仕組みはありません。
変数
Javaなどでは、変数を用意する(宣言する)際、文字列や数値といったデータの型を指定します。Pythonはこれとは異なり、型を指定する必要がありません。Pythonでは、「=」を値の代入に使います。(number = 1)は変数(number)に(1)を代入するという意味です。
もう1つ注目したいのが、1行目の「#」記号です。Pythonでは「#」を先頭に付けると、その行がコメント(プログラムに影響を与えないもの)として扱われます。これを「コメントアウト」と呼びます。
Pythonでは慣例的に変数には小文字の英語しか用いません。
大文字を利用する場面としては変数を定数的に利用するタイミングです。Pythonでは、定数という概念がありません。そのため、定数を定義するための文が存在しないのです。
そのため、定数と変数を区別する方法として、定数として扱う場合に「大文字で記述する」という慣例が生まれました。もちろん、変数に大文字のアルファベットを用いて命名しても仕組み上の問題は発生しません。
変数の使い方
変数は、基本的にリテラルと同じように使うことができる。
次のように計算したり、関数やメソッドに渡したりすることができます。
例:
x = 2
y = 5
sum = x + y
print(sum)
この例では、変数に割り当てた数値を足しわせて、別の変数に割り当てています。
変数はそのままprint関数でコンソールに表示できます。
な変数の型に対して不適切な操作(数値と文字を足すなど)をするとエラーになります。
変数を使う際の注意点
未定義の変数を使わない まだ代入されていない未定義の変数を使おうとするとエラーになります。
なぜなら、Pythonでは代入=変数宣言となっており、まだ代入が行われていない変数は存在しないからです。
「変数は代入してから利用する」ことが鉄則です。
適切な変数名をつける 、変数名には任意の名前をつけることができますが、できるだけ内容を的確に表す適切な命名をする必要がある。
プログラムは後から何度も読み返されるため、適切な名前をつけておかなければプログラムがわかりにくくなってしまいます。
変数を異なる用途に使いまわさない Pythonの変数は異なる型を代入できるため、事実上どんな用途にでも使いまわせます。しかし、変数の使い回しは混乱を招き、バグのもととなってしまうためさける。
異なる用途に変数が必要な場合には、適宜新しい変数を作るべきです。
出力変数
Pythonのprint文は、多くの場合、出力変数に使用されています。
- テキストと変数の両方を結合するには、+文字を使用します:
- x = “勉強”
- print("Pythonを " + x)
- また、別の変数と変数を結合することもできます
- x = "Pythonを "
- y = "勉強"
- z = x + y
- print(z)
- 数値の場合、+文字は、数学的な演算子として機能します
- x = 3
- y = 10
- print(x + y)
- 文字列と数値を結合しようとすると、エラー が出ます
- x = 2
- y = "Python"
- print(x + y)
変数の開放(削除)
一度宣言した変数は、後から削除することもできます。
変数を削除するには「del」を利用します。
x = “Python”
del a
print(a) # NameError: name 'a' is not defined
変数を削除する目的としては、メモリの解放です。
変数はあくまでも、メモリですので使いすぎるとパフォーマンスを悪化させる原因となります。変数が増えすぎて、プログラムの実行速度に影響を与えていそうな場合は、「del」を用いて変数を削除するという案を考えても良いかもしれません。