Pythonのデータ型とは?文字列・数値・型変換の使い方を解説

PR Python

Pythonのデータ型とは?文字列・数値・型変換の使い方を解説

💡 この記事でわかること

  • データ型とは何か、なぜ意識する必要があるのか
  • 文字列(str)・整数(int)・小数(float)・真偽値(bool)の違い
  • type()関数で値の型を調べる方法
  • int()・str()・float()による型変換(キャスト)
  • input()の値が文字列になる注意点と、f文字列の使い方

1. データ型とは?

データ型とは、
👉 プログラムが扱う値の「種類」のことです。「文字列」「整数」「小数」「真偽値」などの種類があり、種類によってできる操作が変わります。

💡 Pythonでは変数を作るときに型を宣言しませんが、値そのものには必ず型があります。例えば同じ+でも、数値同士なら足し算、文字列同士なら連結、というように型によって動きが違います。

1 + 2          # 3(数値の足し算)
"1" + "2"      # "12"(文字列の連結)

変数の基本的な作り方をまだ確認していない場合は、先にこちらを読んでおくとスムーズです。

👉 Pythonの基本文法(print・変数・インデント)についての記事はこちら


2. 文字列型(str)

文字列は、文字の並びを表す型です。シングルクォート'かダブルクォート"で囲みます。どちらを使っても同じです。

name = "太郎"
greeting = 'こんにちは'

print(name + "さん")   # 太郎さん(連結)
print("=" * 10)         # ==========(繰り返し)
print(len(name))        # 2(文字数)

👉 +で連結、*で繰り返し、len()で文字数を取得できます。数字であっても、クォートで囲めば文字列として扱われます("100"は数値の100ではありません)。


3. 数値型(int・float)

数値には2つの型があります。

  • int(整数型):10-30など、小数点のない数
  • float(浮動小数点数型):3.140.5-1.0など、小数点のある数
a = 7
b = 2

print(a + b)   # 9
print(a - b)   # 5
print(a * b)   # 14
print(a / b)   # 3.5  ← 割り算の結果はfloatになる
print(a // b)  # 3    ← 切り捨て(整数の商)
print(a % b)   # 1    ← 余り
print(a ** b)  # 49   ← 7の2乗

👉 /の結果は、割り切れる場合でもfloat(小数)になります(4 / 22.0)。整数として扱いたいときは//を使うか、後述のint()で変換します。

💡 floatの計算では、0.1 + 0.20.30000000000000004のように、わずかな誤差が出ることがあります。コンピューターが小数を2進数で扱う都合によるもので、Pythonに限らず多くの言語で起こります。お金の計算など厳密さが必要な場面では注意が必要です。


4. 真偽値型(bool)

boolは、True(真)かFalse(偽)の2つの値だけを持つ型です。先頭が大文字である点に注意してください。

is_active = True
print(3 > 1)    # True
print(10 == 5)   # False

👉 比較演算子(><==!=など)の結果はboolになります。if文の条件部分では、このboolの値によって処理が分かれます。


5. 型を調べる:type()関数

値や変数がどの型なのかを調べるにはtype()を使います。「思った通りの型になっていない」ときの原因調査に役立ちます。

print(type("太郎"))   # <class 'str'>
print(type(20))       # <class 'int'>
print(type(3.14))     # <class 'float'>
print(type(True))     # <class 'bool'>
print(type("100"))    # <class 'str'>  ← クォートで囲むと文字列

6. 型変換(キャスト):int() / str() / float()

ある型の値を別の型に変換することを型変換(キャスト)と呼びます。よく使うのは次の3つです。

  • int(値):整数に変換する
  • str(値):文字列に変換する
  • float(値):小数に変換する
price = "500"
print(int(price) + 100)   # 600(文字列を整数にしてから計算)

count = 3
print("残り" + str(count) + "個")   # 残り3個(数値を文字列にしてから連結)

print(float("1.5") * 2)   # 3.0

👉 文字列と数値はそのまま+できません"残り" + 3のように書くとTypeErrorになります。数値を文字列に混ぜるときはstr()で変換するか、次に紹介するf文字列を使います。

💡 int("abc")のように、数値として解釈できない文字列をint()に渡すとエラー(ValueError)になりますint("3.5")も同様にエラーです(いったんfloat("3.5")にする必要があります)。


7. input()で受け取った値は必ず文字列

キーボードからの入力を受け取るinput()は、入力された内容を必ず文字列(str)として返します。ここは初心者がとてもつまずきやすいポイントです。

age = input("年齢を入力してください: ")
print(age + 1)   # TypeError! ageは文字列なので数値を足せない

数値として計算したい場合は、int()で変換してから使います。

age = int(input("年齢を入力してください: "))
print(age + 1)   # 入力が20なら 21

8. f文字列で変数を埋め込む

文字列の中に変数の値を入れたいときは、f文字列(フォーマット済み文字列リテラル)が便利です。文字列の先頭にfを付け、{ }の中に変数を書きます。

name = "太郎"
age = 20

print(f"{name}さんは{age}歳です")   # 太郎さんは20歳です

👉 f文字列を使うと、数値でもstr()で変換せずにそのまま埋め込めます"名前" + str(age) + "歳"のように+でつなぐより読みやすく、書き間違いも減るため、現在はf文字列がよく使われます。


9. データ型 早見表

正式名主な用途
文字列str"太郎"、'Python'文字・テキスト
整数int10、-3、0個数・回数・年齢
小数float3.14、0.5割合・平均・測定値
真偽値boolTrue、False条件判定

10. まとめ

Pythonのデータ型についてまとめると、次のようになります。

  • 主な型はstr(文字列)・int(整数)・float(小数)・bool(真偽値)の4つ
  • 型はtype()で調べられる
  • 型が合わないときはint()str()float()で変換する
  • input()の返り値は必ず文字列。数値として使うならint()で変換する
  • 文字列に変数を埋め込むときはf文字列が便利

👉 「input()の値は文字列」「文字列と数値はそのまま足せない」の2つを覚えておくだけで、初心者がよく出会うエラーの多くを避けられます。実際に小さなプログラムを書きながら、型を意識する習慣をつけていきましょう。

-Python
-, , , ,