今回は変数の「型」についてお話していきます。
変数の型とは?
第1回で変数について「何か値を記憶しておく入れ物」と解説しました。
ですが、変数にはどんな「種類」の値が入っているのか?ということが重要な場合があります。
その「種類」が「変数の型」となります。
MODOでスクリプトを書く上で知っておくと良い最低限の型を紹介します。
- int型 整数(0や10などの整数値)
- float型 浮動小数点(1.2や0.001などの小数点値)
- str型 文字列(Hello MODO!! などのテキスト)
- list型 リスト(リスト・タプルは次回に詳しく解説します)
- tupl型 タプル(リスト・タプルは次回に詳しく解説します)
加えて「dict型(辞書)」も使用する機会があるにはありますが、
入門としては、とりあえず以上で紹介した型について理解をして頂ければよいと思います。
「型」が重要な理由
変数は四則演算(足し算、引き算、掛け算、割り算)が可能な事を第1回で紹介しましたが、
原則、同じ「型」同士でないとエラーとなってしまいます。
たとえば「int型」+「str型」というのは、整数+文字列なので計算ができません。
(1 + ‘abc’ = ? 謎々みたいで答えが出せないのでエラーになります。)
「型」が決まるのは変数へ「値」の代入時
Pythonは少し特殊で「変数の型」は宣言時に代入される値によって自動的に決められます。
例えば以下のように宣言と代入をした場合、
a = 1 #整数が代入されているので「int型」
b = 1.0 #少数が代入されているので「float型」
c = 'Hello MODO' #文字が代入されているので「str型」
と、自動的に「型」が決まります。
ここで、
a = 1
b = 1.0
c = 'Hello MODO'
print(a + c)
なんてやっちゃうと、計算できないのでエラーになります。
ただし、例外があり「int型」+「float型」は計算が可能で、
その計算結果は「float型」となります。
a = 1
b = 1.0
c = a + b
print (c)
文字列について
「文字列」と書くと難しく見えますが、
要は単なるテキスト(文章・文字)の事です。
ですが、Pythonでスクリプトを書く際にも文字を書いていくわけですので、
・スクリプトのコードなのか?
・文字列なのか?
ここを明確に区別する必要があります。
そこで、Pythonでは「文字列」として文字を扱う場合は、
その文字を「”」ダブルクォーテーンションか「’」シングルクォーテーション括る
というルールがあります。
自分はシングルクォーテーションを好んで使います。
ですので、文字列の変数を宣言・代入する際は以下のようにします。
a = 'Hello MODO'
とすることで、変数「a」は文字列型の変数で「値」は「Hello MODO」ということになります。
文字列も、文字列同士であれば足し算のみが可能です。
以下のように変数を宣言して足し算してみます。
a = 'MODO'
b = '15.2v2'
c = a + b
print (c)
type()関数を使って変数の型を調べる
スクリプトを書いているとたくさんの変数を扱うこととなります。
また、自分で値を設定し宣言した変数以外にも、
関数から返ってくる「戻り値」によって変数の型が決まる場合もよくあることです。
なので、この変数は一体何の「型」なのかを知りたい場合があります。
そこで、変数の型を調べるための組み込み関数に「type」という関数があります。
type()関数は、引数に調べたい変数を指定します。
a = 1
tp = type(a)
print(tp)
上記は、変数「a」を宣言し、「1」を代入しました。
さらに、変数「tp」を宣言し、type()関数の戻り値を代入しています。
最後にprint関数で変数「tp」の内容を表示します。
少しスクリプトらしいコードを書いてみましょう!
100 x 5の答えを「算数の式」で表示するスクリプトを書いてみましょう。
a = 100 #変数「a」を宣言し、「100」を代入
b = 5 #変数「b」を宣言し、「5」を代入
ans = a * b #変数「ans」を宣言し、a x b の結果を代入
myStr = str(a) + ' x ' + str(b) + ' = ' + str(ans) #表示用の文字列を作成
print (myStr) #「myStr」の内容を表示
新しい組み込み関数「str()」が出てきました。
この関数は、「int型」や「float型」の数値を「文字列」へ変換するための関数です。
その結果、変数「a」変数「b」変数「ans」をそれぞれ文字列として扱うことができるので、
変数「myStr」の部分で、文字列同士の足し算が可能となり、変数「myStr」には結合された文字列が代入されます。
そして「print」関数によって変数「myStr」の内容を表示させています。
次回は「配列」(list型・tupl型)について、詳しく解説していきます。