【Day5】Python入門 1.3:データ型

目次

要約

本日は、Pythonで以下を学びました。

データ型(種類・変換) 

name , age = ‘城島’ , 31
print(‘私の名前は’ + name + ‘です’)
print(‘今は’ + str(age) + ‘歳です’)
age += 1
print(‘来年は’ + str(age)+ ‘歳です’)

format関数/f-string 

name = '城島'
age = 31
print(f'私の名前は {name} で、年齢は {age} 歳です。来年は {age + 1} 歳です')

はじめに

前回は「変数」について学びました。

​今回は、Pythonのデータ型について学習します。

データ型は、変数に格納されるデータの種類を示すもので、プログラミングにおいて非常に重要な概念です。


1.3:データ型

データ型とは

これまでは、数値と文字列の2種類の値を扱ってきました。

この数値や文字列といった値の種類のことをデータ型(date type)また、単にといいます。

Pythonでは、この2つの種類以外にも以下のようなデータ型を扱うことができます。

データ型の名称説明
int整数100 -100
float小数3.14 -0.5
str文字列”Hello” ’カレー’
bool真偽値True False

Pythonの場合、変数自体に方の定めはなく、どのような種類の値でも格納できます。

便利な反面、どのような型の情報が格納されているかがわからなくなったり、

期待している種類とは異なる型の値が格納されてしまったりすることもあります。

値と変数とデータ型

値にはデータ型の定めがあるが、変数はデータ型を持たない。

そこでtype関数を使えば、ある変数にどのような型の値が格納されているかを調べることができます。

#格納されている値のデータ型を調べます
x = 10
print(type(x))

実行結果から、変数xには現在、int型(整数)の値が代入されていることがわかります。

type(関数名)

※変数に代入されている値のデータ型を調べる。
※print関数内で使用すると、調べた結果を表示できる。

1-2:変数のところでchatGPTに質問したやつですね!

ここで注意したいのが、input関数でキーボードから入力した値は、文字列として扱われます

input関数で入力した値を計算に使う場合には、データ型の変換が必要になります。

Pythonの場合、変数のデータ型を必要時しっかり定義した方がいいかもしれないですね!


データ型の変換

Pythonには、ある種のデータ型を別のデータ型に変換するために、以下のような関数が準備されています。

関数名説明
int 関数int(x)変数xの値を整数に変換(xが小数の場合は小数点以下を切り捨て。数値として解釈できない文字列の場合はエラー)
float 関数float(x)変数xの値を小数に変換(数値として解釈できない文字列の場合はエラー)
str 関数str(x)変数xの値を文字列に変換
bool 関数bool(x)変数xの値を真偽値に変換

データ型を変換する例を見てみましょう。

#データ型の変換を行っていきます
x = 3.14
y = int(x)
print(y) #変換結果を表示
print(type(y)) #変換後のデータ型を表示
z = str(x)
print(z)
print(type(z)) #変換後のデータ型を表示
print(z * 2)

実行結果

3 <span class="swl-marker mark_blue">#int型に変換したので、小数点以下が切り捨てられている</span>
<class 'int'>
3.14
<class 'str'>
3.143.14 <span class="swl-marker mark_blue">#文字列なので、「*」で「3.14」が反復されている</span>

データ型によって、できることとできないことに違いがあります。

たとえば、int型はstr型のように + 演算子による連結ができませんし、str型は四則演算ができません

また、同じ演算子を使っていても、データ型によって結果が異なる場合もあります。

たとえば、演算子は整数や小数に用いると掛け算になり、文字列に用いれば反復になります。

現在取り扱っている値のデータ型をしっかり把握し、必要に応じて変換することで、必要な処理を行えるようになります。

変数の定義によって、最終的な値が変わるのは面白いですね!


データ型の変換を用いて、前回のまとめで作成したこちらを修正していきます。

name , age = '城島' , 31
print('私の名前は' + name + 'です')
print('今は' + age + '歳です')
age += 1
print('来年は' + age + '歳です')

age がint型なので、print関数内でint型 + str型の連結ができません

そこで、age をstr型に変更し、+ で連結させていきましょう。

name , age = '城島' , 31
print('私の名前は' + name + 'です')
print('今は' + str(age) + '歳です')
age += 1
print('来年は' + str(age)+ '歳です')

これでエラーもなく実行することができました!


文字列の中に数値を埋め込む

文字列の中に数値を埋め込むプログラムでは、ソースコードが少々読みにくくなってしまいます。

そういった場合はformat関数の構文を活用するとエレガントな表記になります。

format関数()

‘{}を含む文字列’ .format(埋め込む値1 , 埋め込む値2 , ・・・)

※文字列中の値を埋め込みたい場所に波カッコを書く(複数可)。
※formatの丸カッコの中に、埋め込みたい値をカンマ区切りで順番に並べる。

先ほどの文章をformat関数を使って、読みやすくしてみましょう。

#format関数を使って読みやすくします
name = '城島'
age = 31
print('私の名前は {} で、年齢は {} 歳です。来年は {} 歳です'
.format(name , age ,age + 1))

文字列の中に記述した {} を、プレスホルダーといいます。

formatの丸カッコの中に並べた値は、左から順番にプレスホルダーに埋め込まれていきます。

このとき、値は自動的に文字列型に変換されます。

format関数でかなり見栄えは良くなりましたね。
ただ、文章が長くなるとどこに、どの値が入っているかわかりにくくなるかも・・・?
あとは文字列型に自動変換されるところも注意が必要そうですね!


f-string

Python3.6 から、さらに簡潔な書き方も可能になりました。

現在はこの書き方が主流です。

f-string

f'{}を含む文字列’

※文字列中の値を埋め込みたい場所に波カッコを書く(複数可)。
※波カッコの中には式や関数も記述できる。
※文字列中に引用符を使いたい場合は、別の引用符で囲む必要がある。

先ほどの文章をf-stringを使って、さらに読みやすくしてみましょう。

#f-stringを使って、さらに読みやすくします
name = '城島'
age = 31
print(f'私の名前は {name} で、年齢は {age} 歳です。来年は {age + 1} 歳です')

文字列の直前に f を付けると、Pythonはf-stringとして処理してくれます。

数値が格納された変数名を{}の中に直接指定でき、より直感的に理解しやすいコードを書けます。

また、{}の中には式や関数も記述でき、実行するとその評価結果が埋め込まれます

さっきの懸念点がかなり払拭されました!使いやすそうですね!


まとめ

本日は、Pythonで以下を学びました。

データ型(種類・変換) 

name , age = ‘城島’ , 31
print(‘私の名前は’ + name + ‘です’)
print(‘今は’ + str(age) + ‘歳です’)
age += 1
print(‘来年は’ + str(age)+ ‘歳です’)

format関数/f-string 

name = '城島'
age = 31
print(f'私の名前は {name} で、年齢は {age} 歳です。来年は {age + 1} 歳です')

次回からはコンテナを扱っていきます。


プログラムをたくさん書いて、体に覚えさせていきます!

目次