Python活用の基礎講座 ~スマホでPythonシリーズから抜粋~
Python活用の基礎講座 ~スマホでPythonシリーズから抜粋~
1.変数について
変数(variable)とは、各種データを扱うメモリ領域のことを指し、メモリ領域を変数という箱に例え、この箱の中に数字や文字列、日付などのデータを入れることができる。その箱の中のデータに応じ処理を選択し、箱の中のデータは演算や画面表示等、各種用途に使用される。
Pythonでは、変数と変数の初期値を=(イコール)で繋ぐことで変数の宣言を行う。(変数名)=(初期値)の=は「等しい」という意味ではなく、「代入する」という意味である。また、Pythonは動的に型付けをしてくれるので、データ型の指定は不要である。
d1 = 500 # 変数宣言(変数d1は初期値500)
print(d1) # 実行すると画面に変数の中身である500を表示
d2 = '富士山' # 変数宣言(変数d2は初期値'富士山')
print(d2) # 実行結果として、画面に'富士山'が表示される
Pythonは、変数のみで宣言することは不可であり、必ず初期値を指定する必要がある。JavaScriptなど他の言語では、変数だけを宣言しておき中身は空にすることも可能だが、Pythonでは初期値なしの変数宣言を行うことはできない。
変数を宣言するための表現方法は複数あり、次のような記載をすることがある。
d0 = 1
d1 = d2 = 2
d3, d4 =
3,4
print(d0,
d1, d2, d3, d4)
実行結果
1 2 2 3 4
もちろん、次のようにそれぞれ1つ1つ変数を宣言しても同様であり、見やすい書き方、意味のまとまりを考え使い分けることが重要となる。
d0 = 1
d1 = 2
d2 = 2
d3 = 3
d4 = 4
実行結果
1 2 2 3 4
次は変数の命名ルールについて復習する。Pythonで利用できる変数の命名ルールでは、文字にはアルファベット(大文字も小文字も可能)・数字(0~9)・_(アンダースコア)が基本となる。また、慣例的に変数の英語には小文字を使い、それ以外に日本語や特殊文字なども一部利用可能である。ただし、変数の先頭に数字を用いるのは違反であり、エラー(SyntaxError: invalid syntax)となる。
ab_c = 10
あ_b = 20
_12a = 30
1d_ = 100 #
SyntaxError発生
001 = 200 #
SyntaxError発生
Pythonでは定数という概念がなく、定数を定義するための書式は存在しない。Pythonでは変数を定数として扱う場合には、定数と変数を区別する方法がある。それは、変数を定数として扱う場合には、大文字のアルファベットで変数名を記載するというが習慣がある。もちろん、変数に大文字のアルファベットを用い命名してもエラー等の問題は発生しない。
num =
100 # 変数の定義⇒アルファベットの小文字
CONST =
200 # 定数の定義⇒アルファベットの大文字
また、Pythonにおける予約語(Pythonにおいて何らかの意味を持つ単語)は、もちろん変数名や関数名、クラス名などに使用することは不可でありエラーが発生する。次に予約語の一覧を示すコードを示しておく。
#python予約語一覧
import
keyword
print
(keyword.kwlist)
実行結果
['False',
'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global',
'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise',
'return', 'try', 'while', 'with', 'yield']
Pythonの変数には文字型や数値型といった様々なデータ型が存在する。C言語などでは、値を代入する前にデータ型を事前に定義する必要があるが、Pythonでは自動的にデータ型が決定される。この自動的にデータ型が決定される仕組みを「動的型付け」と呼ぶ。動的型付けの仕組みとして、次の式で変数"d1" は数値型に。変数"d2" は文字型として扱われることになる。
a = 1
b = "Hallo world"
print(a, b)
実行結果
1 Hallo
world
つまり、Pythonが動的型付け言語であるため、初期値「1」と「Hallow」という値をPython自身が何型であるかを判断することになる。次のサンプルコードの結果は51となる。
a = 1
b = 50
print(a+b)
実行結果
51
一方で、次のように記述すると、Pythonは変数"a"と変数"b"を文字列とみなし、加算ではなく「結合」することで、結果は「150」となる。
a =
"1"
b =
"50"
print(a+b)
実行結果
150
しかし、次のコードのように数値型と文字型では、データの型が異なるので、演算も結合もできずにエラーとなる。
a = 1 # 数値型
b =
"2" # 文字型
print(a+b)
実行結果
TypeError:
unsupported operand type(s) for +: 'int' and 'str'
変数内のデータを削除するには、次のコードのように「del」を使用するが、変数内データの削除を行うことで、メモリが解放され、ptint()で表示させようとすると型が不明であることからエラーとなる。
dat = 10
del dat
print(dat)
実行結果
NameError:
name 'dat' is not defined