どうも~むるむるです~
今回の記事では「データ型:int, float, str, bool」について学んでいきたいと思います.
このシリーズではプログラミング初心者が最低限のPythonの知識を最短で身に着けることを目標としています.
このシリーズでは以下の順番でPythonの基本的な知識を学習していきます.
- Python:Anacondaインストールとhello world,簡単な計算,コメントアウト
- 変数について
- データ型:int, float, str, bool (この記事)
- データ型:list, tuple, dict
- 条件分岐:if – else 文
- 繰り返し:for文,while文
- 関数の定義,呼び出し,ラムダ式
- クラス
- モジュールのインポート
- 例外処理:try, except, else, finally
- map, reduce, filter
データ型について
データ型とはデータの種類のことであり,この記事ではPythonでも最もよく使われるint型,float型, str型,bool型のデータについて説明していきます.
以下にPythonで非常によく使われるデータ型をまとめました.
型 | 例 | ザックリ説明 |
str | ‘hello world’, ‘https://mlmlai.com/’ | 文字列で表されるデータ |
int | 1, 0, -5, 4939844 | 整数(小数点を含まない数) |
float | 1.5, 0.00938, -0.1 | 小数(小数点を含む数) |
bool | True, False | 真偽値 |
型を理解することはコードを書くうえで非常に重要になります.
まずは例から見ていきましょう.
name_jp = 'むるむる' name_eg = 'Mulumulu' age = 28 height = 1.7 male = True
上の例では,「name_jp」,「name_eg」がstr型(文字列)のデータになります.文字列を「’」または「”」で囲めばstr型の値として認識されます.
他のデータとしては「age」がint型(整数)で「height」がfloat型(小数).そして「male」がbool型(真偽値)のデータになります.
さて,なぜ型を理解することが非常に大事かというと,型によって演算の処理が変わってくるからです.
以下のコードを見てみましょう.
int1 = 10 int2 = 10 str1 = '10' str2 = '10' print(int1 + int2) print(str1 + str2) ''' 出力結果: 20 1010 '''
上の二つ「int1 + int2」と「str1 + str2」は一見するとどちらも10+10を計算しているようですが出力結果に違いがあります.なぜ出力結果に違いがあるか考えてみてください.
変数「int1」,「int2」はint型の変数であるためこの二つの変数を「+」でつないであげれば,先ほども説明した通り普通にたし算をして20を返します.
しかし,下の「str1」,「str2」は「’10’」とシングルコーテーションで囲っているため,str型,すなわち文字列とプログラムに認識されます.なので「+」でつないであげると,たし算をするのではなく二つの’10’という文字列をつなげ’1010’と出力するのです.
そしてさらに,int型とstr型の間で演算はできないので
print(int1+str1)
とするとエラーが出てしまいプログラムが止まってしまいます.
型を理解することが大事であることがお分かりいただけたでしょうか.
データ型の変換
データ型は「int( )」,「float( )」,「str( )」,「bool( )」を使うと簡単に変更することができます.
先ほどの例ではint型の変数とstr型の変数をたし算しようとしたためエラーが出てしまいましたが,二つを数値として足し算したいのであれば,変数「str1」の型をint型に変更することによって達成できます.
また,もし文字列として二つの文字列を結合したいのであれば「int1」の型をstr型に変更してあげるだけでよいです.
以下の例を見てみましょう.
print(int1 + int(str1)) print(str1 + str(int1)) ''' 出力結果: 20 1010 '''
一つ目のprintでは,「int(str1)」とすることによって文字列「’10’」が整数の「10」に変換されているため,数値の足し算として認識されています.
一方で二つ目のprintでは「str(int1)」として整数「10」を文字列「’10’」に変換された上で「+」が使われているので二つの文字列が結合され「’1010’」という出力になっています.
int型とfloat型について
先ほど,「int型 + str型」という演算をしようとした結果,データの型が合わずエラーが出てしまいました.
しかし,int型とfloat型については問題なく演算ができます.整数と小数の四則演算ができるのは直感的には当たり前ですよね.
いくつか例を見てみましょう.
i1 = 1 f1 = 1.3 x1 = i1 + f1 print(x1) ''' 出力結果: 2.3 '''
上の例では,int型とfloat型の足し算をした結果,float型の結果が得られました.
さて,float型の足し算をした結果,たまたま結果がちょうど整数になった場合はどうでしょう.
f1 = 1.3 f2 = 1.7 x2 = f1 + f2 print(x2) ''' 出力結果: 3.0 '''
上では,「1.3」と「1.7」を足し合わせた結果たまたま和がぴったり「3.0」になりました.
このような場合,Pythonではfloat型のデータであると判断されます.
「type( )」を使うと簡単にデータの型がわかるので,実際に「type(x2)」として出力してみてください.「x2」のデータ型はfloat型であると教えてくれます.これをint型に変換するにはデータ型の変換で書いた通り「int(x2)」としてあげればOKです.
確認クイズ
さて,今のところどんな感じでしょうか?この部分はPythonの基礎の基礎の部分なのでPythonを使って何をしたいかによらず必ず必要になってくると思います.
クイズ1
以下のコードで出力される値を考えてみてください.考えたら実際にコードを書いてみて当たっているか確認してみましょう.
x1 = 1 x2 = 1.5 x3 = '1.5' x4 = '1.9' x5 = 2.5 print(x1 + x2) print(x3 + x4) print(x2 + x5)
クイズ2
以下のコードでエラーが起きてしまう原因を探しましょう. 考えたら実際にコードを書いてみて確認してみましょう.
print(10.1 + '0.9')
次回
次回は「データ型:list, tuple, dict」について学習します.
次の記事はこちら.
機械学習のためにしっかりとPythonを勉強したいなら,ある程度の基礎を身に着けた後に下の本を読むのがお勧めです.この本をこなせば,より高いレベルへ到達できるでしょう.
Tech Academyは時間がない方でもオンラインで完結する受講携帯で質問もできます.
手っ取り早く短期間で集中してPythonを勉強したい方はプログラミングスクールも考えてみてはいかがでしょうか.