Pythonのデータ型変換まとめ!int, float, str, list などの変換方法
生徒
「Pythonで文字を数字にしたり、数字を文字に変えたりできるって聞いたんですが、本当にできますか?」
先生
「はい、Pythonではデータ型の変換が簡単にできますよ。たとえばint型やstr型への変換などです。」
生徒
「いろいろなデータ型があるんですね。どうやって使い分けるんですか?」
先生
「それでは、Pythonのint、float、str、listなど、データ型の変換方法を基本から詳しく見ていきましょう!」
1. データ型とは?Pythonの基本と重要性
Pythonでプログラミングをする際、まず知っておきたいのが「データ型(Data Type)」です。これは、コンピュータに「このデータは数字なのか、それとも文字なのか」を教えるための値の種類のことです。
Pythonは「動的型付け言語」と呼ばれ、細かい設定なしで型を自動判別してくれますが、型が一致していないと計算エラー(TypeError)が起きてしまいます。そのため、基本的な型を理解することはスムーズな開発への第一歩です。代表的な型を以下の表にまとめました。
| 型名(クラス) | 内容 | 具体例 |
|---|---|---|
| int(整数) | 小数点を含まない数値 | 10, -5, 0 |
| float(浮動小数点) | 小数点を含む数値 | 3.14, -0.5, 10.0 |
| str(文字列) | ダブルクォーテーション等で囲った文字 | "Hello", '100' |
| list(リスト) | 複数の値をまとめて管理する箱 | [1, 2, 3] |
例えば、同じ「100」でも、数値の100と文字列の"100"では、コンピュータの中での扱われ方が全く異なります。実際にプログラムで現在の型を確認する方法を見てみましょう。
# 数値(整数)の代入
num = 100
print(num)
# 文字列の代入
text = "Python"
print(text)
このように、用途に合わせて適切なデータ型を選択したり、必要に応じて別の型へ変換(キャスト)したりすることが、エラーのないコードを書くための重要なテクニックになります。
2. 数値(int)を文字列(str)に変換する
Pythonで数値を画面に表示したり、他の文章とつなげたりしたいときは、str()関数を使って数値を「文字列」に変換する必要があります。プログラミング初心者の方が最初につまずきやすいのが、「数値の10」と「文字としての'10'」は別物という点です。
例えば、文章の途中に変数を組み込みたい場合、そのままではエラーが発生することがあります。以下のサンプルコードで、正しい変換方法を確認してみましょう。
# 年齢を数値として定義
age = 20
# str()を使って数値を文字列に変換して連結
message = "私の年齢は" + str(age) + "歳です。"
print(message)
# 別の例:点数を表示する
score = 100
print("テストの結果は" + str(score) + "点でした!")
私の年齢は20歳です。
テストの結果は100点でした!
str()は「string(文字列)」の略です。この関数の中に数値を入れるだけで、コンピュータはそれを「計算用の数字」ではなく「表示するための文字」として認識してくれるようになります。ログ出力やユーザーへのメッセージ表示など、開発現場でも非常によく使われる重要なテクニックです。
Tips:なぜ変換が必要なの?
Pythonでは "文字" + 20 のように、違う型同士を直接足し合わせることができません。そのため、str(20) とすることで「文字 + 文字」の形に揃えてあげる必要があるのです。
3. 文字列(str)を数値(int, float)に変換する方法
Webアプリの入力フォームや、外部ファイルから読み込んだデータは、たとえ数字であっても最初は「文字列(str型)」として扱われます。そのままでは計算(加算や乗算)ができないため、int()関数やfloat()関数を使って数値に変換する必要があります。
例えば、ネットショップの注文画面で「100」という文字が入力された場合、それを数値に変換して消費税を計算する流れを考えてみましょう。
# ユーザーから「100」という文字が入力されたと仮定
input_price = "100"
tax_rate = 0.1
# 文字列のまま計算しようとするとエラーになるため、int()で整数に変換
price = int(input_price)
total = price * (1 + tax_rate)
print("合計金額は" + str(total) + "円です。")
合計金額は110.0円です。
上記のコードでは、int(input_price) とすることで、計算可能な数値に変換しています。もし、身長や体重、気温のように「170.5」といった小数点を含むデータを扱いたい場合は、float()関数を使いましょう。
# 小数点を含む文字列を数値(浮動小数点)に変換
height_str = "175.5"
height_num = float(height_str)
print(height_num + 5.0) # 数値として計算できる
注意点:変換できないデータ
int("100円") や int("python") のように、数字以外の文字が混じっていると、Pythonは「どうやって数字にすればいいかわからない!」とエラーを出してしまいます。変換する前には、純粋な数字のみが入っているか確認しましょう。
4. 数値同士の変換!float(小数)とint(整数)を使い分ける
Pythonでは、同じ数値でも整数(int)と小数(float)は明確に区別されています。計算の精度を高めたいときや、逆に端数をなくしてスッキリさせたいときなど、状況に応じてこれらを相互に変換するシーンがよくあります。
小数から整数へ変換(切り捨ての仕組み)
小数(float)を整数(int)に変換すると、小数点以下は単純に切り捨てられます。四捨五入ではない点に注意しましょう。例えば、買い物の合計金額から端数をカットしたい場合などに活用できます。
# 小数点を含む数値(float型)
price = 198.99
# int()を使って整数に変換(小数点以下を切り捨てる)
discounted_price = int(price)
print("元の値:", price)
print("変換後の値:", discounted_price)
元の値: 198.99
変換後の値: 198
このように、int()関数を通すと、どんなに0.99に近くてもバッサリと切り捨てられ、整数部分だけが残ります。
整数から小数へ変換
逆に、整数をfloat()関数で変換すると、見た目には「.0」が付与され、コンピュータはそれを「精密な計算ができる小数」として扱うようになります。
# 整数(int型)
count = 10
# float()を使って小数に変換
float_count = float(count)
print("変換後の値:", float_count)
変換後の値: 10.0
「10」と「10.0」は数学的には同じですが、プログラムの世界では「整数の箱」に入っているか「小数の箱」に入っているかの違いがあります。計算結果をより厳密に(0.1単位などで)管理したい場合には、あらかじめfloat型に変換しておくと安心です。
5. リスト(list)への変換
list()関数を使うと、文字列・タプル・セットなどをリストに変換できます。
文字列をリストに変換すると、1文字ずつのリストになります。
text = "apple"
letters = list(text)
print(letters)
['a', 'p', 'p', 'l', 'e']
セット(set)をリストに変えると、順番は保証されませんが、リストとして扱えるようになります。
6. タプル(tuple)・セット(set)への変換
Pythonでは、リストをタプルやセットに変換することもできます。
fruits = ["りんご", "バナナ", "りんご"]
print(tuple(fruits)) # タプルへ
print(set(fruits)) # セットへ(重複排除)
('りんご', 'バナナ', 'りんご')
{'バナナ', 'りんご'}
tuple()は読み取り専用のように使いたいときに便利で、set()は重複をなくしたいときに使います。
7. 型を確認するには type()
データがどの型かを調べたいときは、type()関数を使います。
value = "100"
print(type(value))
<class 'str'>
このようにすれば、変数のデータ型が何かを確認できます。デバッグ(プログラムの動作確認)にも便利です。
8. 変換できないときの注意点
すべてのデータが必ずしも変換できるわけではありません。たとえば、文字列"abc"をintに変換しようとすると、エラーになります。
print(int("abc")) # エラーになります
ValueError: invalid literal for int() with base 10: 'abc'
データ型を変換する前には、中身が変換可能な値かどうかをチェックするようにしましょう。
まとめ
Pythonのデータ型変換は、プログラミングを学ぶ上で欠かせない重要な知識です。この記事では、int・float・str・list・tuple・setなど、Pythonで扱うさまざまなデータ型の変換方法について詳しく解説しました。特に、文字列から数値への変換や、数値から文字列への変換、リスト・タプル・セット間の相互変換は、実際の開発やデータ処理でも頻繁に登場します。
また、Pythonではtype()関数を使って、変数のデータ型を確認できるため、プログラムの動作確認やデバッグに役立ちます。ただし、すべてのデータが自由に変換できるわけではなく、変換できない場合の注意点も解説しました。たとえば、「abc」のような文字列をint()で変換しようとするとエラーになるため、型変換を行う前にisdigit()などで確認するのが安全です。
以下は、数値と文字列の変換を組み合わせて使うサンプルコードです:
price_str = "1200"
if price_str.isdigit():
price = int(price_str)
print("税込価格は " + str(int(price * 1.1)) + " 円です")
else:
print("価格情報が不正です")
税込価格は 1320 円です
このように、Pythonの型変換は柔軟かつ強力で、初心者が躓きやすい部分でもありますが、一度慣れてしまえば非常に便利に使いこなせるようになります。リストを文字列に変換して結合したり、文字列を分割してリストに変換する処理なども、今後のステップとして覚えておくと良いでしょう。
最後に、データ型の変換においては元のデータがどのような形式であるかを常に意識し、適切な変換方法を選ぶことが大切です。型変換の理解を深めることで、Pythonのプログラミング力が着実に向上していきます。
生徒
「先生、Pythonの型変換って最初は難しく感じたけど、今日の記事ですごく整理されてわかりやすかったです!」
先生
「よかったです。特にstr()やint()のような関数は、どんなデータでも柔軟に使えるので、これからたくさん活用できますよ。」
生徒
「入力を受け取って数値に変えて計算したり、リストを作って扱ったり、Pythonの基礎力がついた気がします!」
先生
「その調子です。Pythonのデータ型はしっかり理解しておけば、後で関数や辞書を学ぶときにも役立ちますよ。わからないときはtype()で型を調べるクセもつけておくと安心です。」
生徒
「はい!これからも型変換をマスターして、もっと実践的なコードが書けるようになりたいです!」