今回は、pythonの「データ型」について一緒に学んでいきましょう。
データ型ってなんでしょうか?
プログラミングから一歩離れて考えてみると
意外とスッキリ理解できます。
pythonのデータ型
データ型ってなに?
まず、データ型の説明です。
いきなりあなたに質問ですが、
3
これは数字ですが、どんな分類でしょうか?
整数ですね。
それでは、
0.3はどうでしょうか?
小数ですね。
最後に、「三」はどうでしょう?
漢字。まあ名詞ですね。
実はこのような分類をPythonの内部でも行う必要があります。
分類といっても、pythonが勝手にやってくれます。
データ型と、たいそうな名前になっていますが、
本質は↑のような分類わけです。
pythonのデータ型の種類
それでは、pythonには、どんな分類わけがあるのでしょうか。
具体的に例を示しながら説明していきます。
pythonの整数型:int
先ほどの例での3ですね。
この3は整数なので、入力するとpythonが「intが入力された」
とかってに判断してくれます。
pythonの浮動小数点数型:float
浮動小数点数と聞きなれないワードが出てきましたが、
平たく言うと「小数」のことです。
先ほどの例では、0.3ですね。
pythonの文字列型:str
文字列型はstrという型に分類されます。
先ほどの例では「三」です。
pythonの論理型:bool
論理型については、プログラミングになじみにない方には
少々とっつきにくいので、if文のところで詳しく解説します。
pythonで実際に型を調べる
概念だけ説明していてもつまらないので、
実際にコードを書いてデータ型を体感してみましょう。
今回使うのは、type()という関数です。
関数の概念などはもっと理解が進んでから解説します。
前回多用していたprint()も実は関数です。
int(整数)型を確認してみる
実際にtypeとprintを使って↓のようなコードを実行してみましょう。
1 | print(type(3)) |
class int
と返ってきましたか?
pythonが、3はintであると認識した結果です。
float(浮動小数点数)型を確認してみる
1 | print(type(0.3)) |
引き続き小数のデータ型を確認してみましょう。
class float
と返ってきましたね?
しっかり小数(float)であるとpythonが認識してくれています。
str(文字列)型を確認してみる
では、最後に文字列をpythonに認識してもらいましょう。
他のデータ型と異なり、
文字列をpythonに認識してもらうには、
シングルコーテーション(‘)で挟んであげる必要があります。
1 | print(type('三')) |
まずは、こちらを実行してみましょう。
すると、class strと返ってきて、文字列型で認識してくれています。
ちょっと疑問に思いませんか?
シングルコーテーションが無かったらどうなるのか。
やってみましょう。
1 | print(type(三)) |
エラーになりましたね。
実は、文字列を使う場合には、
明示的に(はっきり)とこれは文字列です。
とpythonに教えてあげないといけません。
これは意外と重要なことなので覚えておきましょう。
ちなみに….シングルコーテーションで囲んだ例が前回の記事に合ったのですが、
覚えていますか??
じつは、1+2の計算をさせずに
1+2と出力させるときに、文字列(str)型を指定しているのです。
もう一度おさらいでコードを書いておくと、
1 | print('1+2') |
出力結果は、1+2でしたね?
実は、シングルコーテーション(‘)を付けることによって、
数字でも文字列(str)型に変換できるのです。
これを「型変換」なんて呼んだりします。
つまり、今までのコードすべてに(‘)を付けるとどうなるか…
1 2 | print(type('3')) print(type('0.3')) |
どうでしょうか。
全てclass str
つまり文字列に変わりましたよね。
先ほどまでintやfloatだったのに変換することができました。
それでは、逆に文字列(str)から整数(int)や小数(float)を整数(int)に型変換する方法をご紹介します。
pythonのデータ型変換
まずは整数(int)型へ変換の例を紹介します。
文字列(str)から整数(int)へ変換
先ほど’3’がstrになったのは確認できたので、‘3’をintに戻すことを考えましょう。
str⇒intの変換には、int()という関数を使用します。
それでは実際に変換してみましょう。
1 | print(type(int('3'))) |
ちょっと()の数が増えてきたので一応解説ですが、
算数と同じで、()の中にあるほうが優先的に実行されます。
つまり、’3’をintに変換⇒typeを判定⇒typeを表示
という流れです。
結果としてはclass intということで、
intが返ってきているので、しっかりintに変換されているのがわかります。
ちょっと番外編:2進数、8進数、16進数から10進数へ
str⇒intへの変換は完璧ですね。
それでは、プログラミングの世界では登場する頻度が高い
2進数、8進数、16進数から10進数への変換もご紹介しておきます。
実はそこまでトリッキーなことはしません。
1000が2進数だったとして、10進数に変換したいのであれば、
1 | print(int('1000',2)) |
8進数から変換したいのであれば、
1 | print(int('1000',8)) |
16進数から変換したいのであれば、
1 | print(int('1000',16)) |
となります。
どこが〇進数に対応しているかわかりますね?
これで「16進数にしたい。」という場合の対処法はバッチリですね。
文字列(str)から小数(float)へ変換
文字列(str)を整数(int)にするときに、
int()を使用しました。
小数に変換するときは何となく予想がつきませんか??
そうです。float()を使います。
実際にはこちらのようになります。例として’3.33’を小数(float)に変換してみます。
1 | print(type(float('3.33'))) |
どうでしょうか?floatと表示されましたね。
str⇒floatが完了しました。
小数(float)から整数(int)へ変換
じつはもうすでに紹介しているint()を使用します。
例えば、3.33を整数へ変換したい場合は、
1 | print(int(3.33)) |
まとめ
今回はデータ型について一緒に学んでいきました。
実際やってみると自由自在に型変換できることがわかってもらえたと思います。
データ型はやっているうちに細かいエラーとして、
ちょくちょく出現することがあります。
今回の内容を理解してエラーが出た時の対処をしてみましょう。
独学の限界を感じているあなた。
昨今のトレンドに乗り遅れていませんか?
「苦労して少ない情報をネット検索するのはもうやめましょう。」
プログラミング習得のテッパンはずばりスクールです。
「最前線でしか手に入らない知識」を習得しませんか?
まずは気軽にWEBの無料説明会からどうぞ。
コメント