[Python]データの型を理解しよう!

 皆さんこんにちは。cu-hackです。

本日はPythonにおけるデータ型の解説です。
今後データ分析などを行っていく際には必須となる知識ですので、
しっかりと理解しておきましょう。

全く馴染みの無い言葉が出てきましたね。
pythonで扱うデータには全てにおいて"型"と呼ばれる形式が割り当てられています。
実は前回の記事内で簡単に触れていたりもします。
文字の場合は''で囲っているのに、数字は囲わなくていいの?
まさにこの部分が当てはまっていたのです。
そして実は大半が小学校低学年のうちから理解していることでもあるのです。

ここで5点の質問です。
①何か日本語で文字を書いてください
②整数を1つ思い浮かべてください
③少数を1つ思い浮かべてください
④今日の日付を教えて下さい
⑤今から10年前は1990年ですか?

すぐに答えられたのではないかと思います。

①何か日本語で文字を書いてください
  →ありがとう
②整数を1つ思い浮かべてください
  →3
③少数を1つ思い浮かべてください
  →3.14
④今日の日付を教えて下さい
  →2025年3月28日
⑤今から10年前は1990年ですか?
  →いいえ
プログラム上ではそれぞれ別の"データ型"として扱われます。

pythonではどのようなデータ型があるのかご紹介します。

前段の質問番号とリンクさせて説明します。

【①文字列:str】
説明  :文字単体、文字の羅列、数字を含む文字など
記載方法:'' か "" で囲う
例   :'ありがとう'、'か'、'GPT4'、'3.14'、"3.14"
変換方法:str(~~)

【②整数:int】
説明  :小数点を含まない数値
記載方法:そのまま記述
例   :1, 3, 5, 7, 9
変換方法:int(~~)

【③浮動小数点:float】
説明  :小数点を含む数値
記載方法:そのまま記述
例   :3.14, 5.2, 3.0
注意点 :3.0は小数点以下が0ですが、小数点以下を定義しているのでfloatとなります
変換方法:float(~~)

【④日付:datetime】
説明  :年、月、日、時、分、秒
記載方法:pipでインストールできるdatetimeパッケージを利用して表記
例   :datetime.datetime(2025, 03, 28, 13, 10, 15)

【⑤論理型:bool】
説明  :正誤判定結果
記載方法:そのまま記述
例   :True, False

小難しく記載しましたが、それぞれ前章の問の回答と変わりありません。


③実際にプログラムで確認しよう

おなじみjupyterを使って確認をしたいと思います。
仮想環境を有効化し、jupyterを起動してください。
削除していなければ前回作成した.ipynbの拡張子のファイルが残っているので
そちらを使いましょう。
削除してしまっていたら再作成してください。

まずは空いているセルに以下のように変数を定義しましょう。

type_str = 'ありがとう'
type_int = 3
type_float = 3.14
type_bool = True

一つのセルで4つの行を実行してしまって問題ありません。

データ型の確認には以下のコードを用います。

type(オブジェクト)

それでは実際に実行してみましょう。
しっかりと定義した変数のデータ型が出てきていますね。
これでデータ型の確認が終了です。

※datetimeはまた後ほど・・・


今までは比較的きれいな形で進めてきました。
それではちょっと意地悪をして、以下の場合だとどうなるでしょうか?

q1 = 'True'
q2 = 11.0
q3 = 9/3
q4 = 5 + 2.0
q5 = True + 3

それぞれ実行して確認してみましょう!

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
【Q1】
Trueはbool型ではありますが、''で囲われてしまっているので
文字列として扱われています。

【Q2】
11.0は小数点が0なので整数のイメージもありますが、
.0と小数点以下を定義してしまっているのでfloatとなります。

【Q3】
9/3の回答は3なので、整数!と思いきや、、、
割り算処理は小数点以下まで定義されるのでfloatです。
実際にq3の中身を確認してみると3.0となっていることがわかります。


【Q4】
5+2の答えは7ですが、今回は5+2.0と後半の数字に小数点以下が定義されています。
整数+小数点の計算結果は小数点となり、floatが正解です。


【Q5】
そんなことできるの?とおもったかたもいらっしゃるかもしれません。
実はできてしまうんです。
boolにおけるTrueはintでの1に当たります。
ですので今回の計算では答えは4となり、整数が正しいです。
※Trueは1、Falseは0となります。


本日は以上です。
お疲れ様でした!!




コメント