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) # 出力: 150int() の注意点: 小数点や変換できない文字列
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.0float() の注意点: 変換できない文字列
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("")) # 空文字列は Falsebool() で False になる値を覚えよう
bool() を使ったときに False になる値は限られています。以下の代表的なものを覚えておけば、ほとんどのケースに対応できます。
| データ型 | False になる値 |
整数 (int) | 0 |
浮動小数点数 (float) | 0.0 |
文字列 (str) | "" (空文字列) |
リスト (list) | [] (空のリスト) |
タプル (tuple) | () (空のタプル) |
辞書 (dict) | {} (空の辞書) |
None | None |
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プログラミングのあらゆる場面で登場する土台となる知識です。ぜひ、ご自身のコードで実際に試しながら、その働きをマスターしてください。


コメント