Python - 型変換

こんにちは、未来のPythonの魔法使いたち!今日、私たちはPythonの世界での型変換の興味深い旅に出かけます。この用語を初めて聞いたことがないという方も心配しないでください。このチュートリアルの終わりまでに、プロのように型を変換することができるようになるでしょう!

Python - Type Casting

型変換とは?

その前に、簡単なアナロジーから始めましょう。レゴブリックの箱を想像してみてください。いくつかは丸い、いくつかは四角い、そして星形のものもあります。型変換は、ある形を他の形に変える魔法の杖を使うことを想像してみるといいです。Pythonでは、レゴブリックの形の代わりにデータ型を使って同じことを行います!

Pythonの暗黙の型変換

Pythonは賢いです。時々、あなたが要求していなくても自動的にあるデータ型を別のデータ型に変換します。これは暗黙の型変換と呼ばれます。

例を見てみましょう:

x = 5    # これは整数です
y = 2.0  # これは浮動小数点数です
z = x + y

print(z)
print(type(z))

このコードを実行すると、以下のようになります:

7.0
<class 'float'>

ワォ!Pythonは私たちの整数xを浮動小数点数に自動的に変換して、yに足しました。Pythonは考えるキャップをかぶり、「ちょっと待って、私は整数と浮動小数点数を直接足せないので、まず整数を浮動小数点数に変えよう!」と言ったみたいです!

Pythonの明示的な型変換

では、私たちがPythonに正確にどの型を欲しいかを指示したい場合はどうでしょうか?そんな場合には明示的な型変換が役立ちます。これは私たちのデータに魔法の杖を意図的に使うことを想像してみてください。

Pythonはこの目的のためにいくつかの組み込み関数を提供しています。最も一般的なものを見てみましょう:

Python int() 関数

int()関数は値を整数に変換します。見てみましょう:

a = int(3.14)
b = int("42")
c = int(True)

print(a, type(a))
print(b, type(b))
print(c, type(c))

出力:

3 <class 'int'>
42 <class 'int'>
1 <class 'int'>

ご覧のように、int()は浮動小数点数、(有効な整数を表す)文字列、そしてブール値を整数に変換できます。それは数のシェイプシフターのようです!

Python float() 関数

float()関数は値を浮動小数点数に変換するための関数です:

x = float(5)
y = float("3.14")
z = float("inf")

print(x, type(x))
print(y, type(y))
print(z, type(z))

出力:

5.0 <class 'float'>
3.14 <class 'float'>
inf <class 'float'>

見てください!私たちは整数、文字列、そして無限の概念を浮動小数点数に変換しました。それは固体のレゴブリックを水に変えるようなものです - それらは今や小数点を持つ流れになります!

Python str() 関数

そして最後に、str()関数があります。この関数は物語の話し手のように、ほとんどすべてを文字列に変換できます:

a = str(42)
b = str(3.14)
c = str(True)
d = str([1, 2, 3])

print(a, type(a))
print(b, type(b))
print(c, type(c))
print(d, type(d))

出力:

42 <class 'str'>
3.14 <class 'str'>
True <class 'str'>
[1, 2, 3] <class 'str'>

驚きですね!私たちは数、ブール値、そしてリストを文字列に変換しました。str()関数はまるで私たちが与えるものに対して絵を描く名匠のようです!

シーケンス型の変換

では、異なるシーケンス型間の変換について話しましょう。Pythonにはリスト、タプル、セットなどのいくつかの組み込みシーケンス型があります。これらの型を相互に変換するには、それぞれの関数を使用します:

# リストをタプルに変換
my_list = [1, 2, 3, 4, 5]
my_tuple = tuple(my_list)
print(my_tuple, type(my_tuple))

# タプルをセットに変換
my_set = set(my_tuple)
print(my_set, type(my_set))

# セットをリストに戻す
back_to_list = list(my_set)
print(back_to_list, type(back_to_list))

出力:

(1, 2, 3, 4, 5) <class 'tuple'>
{1, 2, 3, 4, 5} <class 'set'>
[1, 2, 3, 4, 5] <class 'list'>

それは私たちのデータを異なる型間で音楽チェアのように移動させているみたいです!

データ型変換関数

では、学んだ型変換関数を便利な表にまとめてみましょう:

関数 説明
int() 整数に変換 int("42") → 42
float() 浮動小数点数に変換 float("3.14") → 3.14
str() 文字列に変換 str(42) → "42"
bool() ブール値に変換 bool(1) → True
list() リストに変換 list((1, 2, 3)) → [1, 2, 3]
tuple() タプルに変換 tuple([1, 2, 3]) → (1, 2, 3)
set() セットに変換 set([1, 2, 2, 3]) → {1, 2, 3}

これらの関数は、Pythonのスイスアーミーナイフのように、非常に多様な使い方ができ、多くの難しい状況から助け出すことができます!

それでは、みんな!私たちはPythonの型変換の土地を歩き回って、暗黙の変換から明示的な変換に至りました。Pythonが自動的に型を変更する方法、そして私たちがどのように型を自分自身で変更することができるかを見ました。

忘れずに、型変換はPythonのツールボックスにおける強力なツールです。それはデータを必要に応じて形を整えることができ、まるで彫刻家が粘土を美しい像に形作るようにです。練習すれば、プロのように型を変換することがすぐにできるようになります!

では、进んで、若いPythonistaたちよ、変換しましょう!そして常に覚えておいてください - Pythonの世界では、すべての型にはその場所がありますが、変換の力を持つことで、どの型も固定されていないのです。ハッピーコーディング!

Credits: Image by storyset