トップページ -> Python入門 基礎編 -> 入力とデータ型①

入力とデータ型について学ぼう!①

前回はinput関数を使ったら 10+11=1011 という奇妙な現象が起こってしまいました. 今回はこの現象について詳しく解説していきます. この現象を説明するキーワードが「データ型」です. もしかしたら何かの間違いで数字の入力が文字列として扱われているのかもしれません. 以下では色々なデータのデータ型を実際に調べてみます.

私たちからすると 1 も 1.0 も全く同じですが,コンピュータからすると少し違うのです. このことをデータ型を返すtype関数を使って確かめます. type関数はtype()の括弧の中にデータ型を調べたいものを渡すことで使います.


print(type(1))
print(type(1.0))
実行すると,以下のように表示されます.
データ型1
これは,1はint型(整数型)で1.0はfloat型(小数型)であることを意味します. 同じ「1」でも型が違うのです. 今度は数値ですらない"Hello World"という文字列について型を調べてみます.

print(type("Hello World"))
実行すると,以下のように表示されます.
文字列型
これは,"Hello World" がstr型(文字列型)であることを意味します. ""で囲まれた文字が文字列として認識されるというのはデータ型が「文字列型」になっているということだったのです. 試しに"10" のデータ型も調べてみましょう. これは,""で囲まれているため文字列型になるはずですね.

print("10")
print(type("10"))
以下のように表示されます.
文字列型2
見た目では数値と同じですが,コンピュータ内部ではしっかり文字列型として扱われています. それでは,input関数を使って受け付けた入力についてのデータ型を調べてみましょう. これが,文字列型として扱われているのなら 10+11=1011 の説明がつきます.

x = input()
print(type(x)) 
実行すると以下のようになります.
入力の型
やはり,入力が文字列型として扱われていましたね. 実は,input関数は入力をすべて文字列として扱うのです. 原因が分かったので次回は解決方法について解説します.

<- 前へ戻る 【目次に戻る】 次へ進む ->