【Python 組み込み関数】int(), float(), bool() の使い方を徹底解説!(型変換の基本)

Python

Pythonプログラミングを学び始めると、必ず出会うのが int(), float(), bool() といった組み込み関数です。これらは、異なるデータ型を変換するために使われる、非常に重要で基本的な関数です。

「文字列として受け取った数字を計算に使いたい」「値が存在するかどうかで処理を分けたい」といった場面で、これらの関数が活躍します。

この記事では、Pythonの基本的な型変換を担う int(), float(), bool() について、初心者の方にも分かりやすく、サンプルコードを交えながら徹底的に解説します。

この記事を読めば、以下のことができるようになります。

  • int(), float(), bool() の基本的な使い方がわかる
  • 文字列や他の数値型を、整数・浮動小数点数・真偽値に正しく変換できる
  • 型変換でよくあるエラーとその対処法がわかる

Pythonの「型」と型変換の重要性

まず、int() などの関数を理解する上で欠かせない「データ型」と「型変換」の重要性について簡単に説明します。

なぜデータ型の変換(キャスト)が必要なのか?

結論として、データ型が異なると期待通りに動作しないからです。

Pythonでは、すべてのデータが「型(type)」を持っています。例えば、100 は整数(int)、3.14 は浮動小数点数(float)、"こんにちは" は文字列(str)です。

コンピュータは、同じ数値の 100 でも、それが整数なのか文字列なのかを厳密に区別します。例えば、文字列の "100" と整数の 50 を足そうとすると、Pythonはエラーを出してしまいます。

# 文字列の "100" と 整数の 50 を足そうとするとエラーになる
# TypeError: can only concatenate str (not "int") to str
result = "100" + 50
print(result)

このような場合に、文字列の "100" を整数の 100 に変換する操作が必要になります。この操作を**型変換(またはキャスト)**と呼びます。

今回紹介する3つの基本の型変換関数

Pythonには多くの型変換関数がありますが、今回はその中でも特に使用頻度が高い以下の3つを解説します。

  • int(): データを**整数(integer)**に変換する
  • float(): データを**浮動小数点数(float)**に変換する
  • bool(): データを**真偽値(boolean)**に変換する

これらの関数は、Pythonのバージョンに関わらず広く利用できる基本的な機能です。

整数に変換する int() 関数の使い方

int() 関数は、引数に渡した値を整数のデータ型に変換します。

基本的な使い方(数値・文字列からの変換)

int() は、浮動小数点数や数字で構成された文字列を整数に変換できます。

浮動小数点数を int() に渡すと、小数点以下が切り捨てられます。

# 浮動小数点数 3.14 を整数に変換
num_float = 3.14
num_int = int(num_float)

print(num_int)      # 出力: 3
print(type(num_int)) # 出力: <class 'int'>

# 数字の文字列 "100" を整数に変換
str_val = "100"
int_val = int(str_val)

print(int_val)      # 出力: 100
print(type(int_val)) # 出力: <class 'int'>

# 計算も可能になる
print(int_val + 50) # 出力: 150

int() の注意点: 小数点や変換できない文字列

int() は、整数に解釈できない文字列を変換しようとするとエラーになります。

例えば、"3.14" のように小数点を含む文字列や、"apple" のような数字以外の文字を含む文字列を int() に渡すと、ValueError というエラーが発生します。

# 小数点を含む文字列はエラーになる
# ValueError: invalid literal for int() with base 10: '3.14'
# int("3.14")

# 数字以外の文字を含む文字列もエラーになる
# ValueError: invalid literal for int() with base 10: '100a'
# int("100a")

文字列をまず float() で浮動小数点数に変換してから int() で整数に変換する、という2段階の方法を使えば、"3.14" のような文字列も整数化できます。

str_float = "3.14"
result = int(float(str_float))

print(result) # 出力: 3

浮動小数点数に変換する float() 関数の使い方

float() 関数は、引数に渡した値を浮動小数点数のデータ型に変換します。

基本的な使い方(数値・文字列からの変換)

float() は、整数や、数字・小数点で構成された文字列を浮動小数点数に変換できます。

整数を float() に変換すると、.0 がついた浮動小数点数になります。

# 整数 100 を浮動小数点数に変換
num_int = 100
num_float = float(num_int)

print(num_float)      # 出力: 100.0
print(type(num_float)) # 出力: <class 'float'>

# 数字の文字列 "3.14" を浮動小数点数に変換
str_val = "3.14"
float_val = float(str_val)

print(float_val)      # 出力: 3.14
print(type(float_val)) # 出力: <class 'float'>

# 整数形式の文字列 "200" も変換できる
str_int_val = "200"
float_val2 = float(str_int_val)
print(float_val2)     # 出力: 200.0

float() の注意点: 変換できない文字列

int() と同様に、float() も数字やピリオド以外を含む解釈不能な文字列を渡されると ValueError を発生させます。

# 数字やピリオド以外を含む文字列はエラー
# ValueError: could not convert string to float: 'apple'
# float("apple")

# ピリオドが2つあってもエラー
# ValueError: could not convert string to float: '3.1.4'
# float("3.1.4")

真偽値に変換する bool() 関数の使い方

bool() 関数は、引数に渡した値を True(真)または False(偽)の真偽値データ型に変換します。条件分岐などで非常に重要な役割を果たします。

基本的な使い方と True / False の判定基準

bool() は、多くの値を True と判定しますが、特定の値だけを False と判定します。

基本的には、「中身が空っぽ、またはゼロのものは False」と覚えておくと分かりやすいです。

# 数値の場合
print(bool(100))    # 出力: True
print(bool(-1))     # 出力: True
print(bool(0))      # 出力: False
print(bool(0.0))    # 出力: False

# 文字列の場合
print(bool("Hello")) # 出力: True
print(bool(" "))    # 半角スペースでも中身があるので True
print(bool(""))     # 空文字列は False

bool() で False になる値を覚えよう

bool() を使ったときに False になる値は限られています。以下の代表的なものを覚えておけば、ほとんどのケースに対応できます。

データ型False になる値
整数 (int)0
浮動小数点数 (float)0.0
文字列 (str)"" (空文字列)
リスト (list)[] (空のリスト)
タプル (tuple)() (空のタプル)
辞書 (dict){} (空の辞書)
NoneNone

Google スプレッドシートにエクスポート

これら以外のほとんどすべての値は、bool()True に変換されます。

実践!int(), float(), bool() の活用例

最後に、これらの関数が実際のコードでどのように使われるかを見てみましょう。

ユーザーからの入力を数値として扱う (input() との組み合わせ)

input() 関数で受け取ったユーザーからの入力は、すべて文字列(str)型になります。 これを計算に使うためには、int()float() で数値に変換する必要があります。

# ユーザーに年齢を入力してもらう
age_str = input("あなたの年齢を入力してください: ")

# 文字列のままでは計算できないので整数に変換
age_int = int(age_str)

# 10年後の年齢を計算
future_age = age_int + 10

print(f"10年後、あなたは {future_age} 歳です。")

条件分岐でbool()が活躍する場面

if 文などの条件分岐では、条件式の結果が内部的に bool() で評価されています。値が存在するかどうかをチェックする際によく使われます。

# ユーザーリスト
users = ["Alice", "Bob"]
# users = [] # こちらを有効にすると "ユーザーがいません" と表示される

# usersリストに中身があれば(bool(users) が True なら)
if users:
    print("ユーザーがいます。")
    for user in users:
        print(f"- {user}")
else:
    # usersリストが空なら(bool(users) が False なら)
    print("ユーザーがいません。")

このコードでは、if users: の部分で bool(users) が暗黙的に呼び出されています。リストが空 [] なら False、要素が1つでもあれば True と判定され、処理が分岐します。

まとめ

今回は、Pythonの基本的な組み込み関数である int(), float(), bool() の使い方を解説しました。

  • int(x): x整数に変換します。小数点以下は切り捨てられます。
  • float(x): x浮動小数点数に変換します。
  • bool(x): x真偽値 (True/False) に変換します。0 や空のデータ以外は基本的に True になります。
  • 型変換はなぜ必要?: input() の結果が常に文字列であるように、データは意図しない型で存在することがあります。計算や条件分岐を正しく行うために、適切な型に変換することが不可欠です。

これらの関数は、Pythonプログラミングのあらゆる場面で登場する土台となる知識です。ぜひ、ご自身のコードで実際に試しながら、その働きをマスターしてください。

コメント

タイトルとURLをコピーしました