Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの明示的な型キャスト(型変換)を徹底解説|int・float・strなど組み込み関数の使い方

はじめに:Pythonにおける型キャストとは?

プログラミングにおいて、データ型を宣言して扱うことは日常的な操作ですが、異なるデータ型同士を相互に変換できることをご存じでしょうか?本記事では、Pythonに組み込まれた関数を使ってデータ型を変換する方法、いわゆる「型キャスト(Type Casting/型変換)」について解説します。

型キャストには大きく分けて「暗黙的(Implicit)」と「明示的(Explicit)」の2種類があります。暗黙的な型変換はPythonが自動的に行うものである一方、明示的な型キャストは開発者が意図的に組み込み関数を呼び出して変換を行う方法です。この記事では、明示的な型キャストに焦点を絞って詳しく見ていきましょう。

int():整数型への変換

int() 関数を使うと、任意のデータ型を整数型(int)に変換できます。第1引数に変換したい値、第2引数に「基数」を指定します。基数には、2進数なら「2」、8進数なら「8」、16進数なら「16」などを渡します。第2引数を省略した場合は、10進数として解釈されます。

float():浮動小数点数型への変換

float() 関数を使うと、任意のデータ型を浮動小数点数型(float)に変換できます。引数は1つだけで、変換したい値を渡します。

実例:int()とfloat()による変換

# 型キャスト
value = "0010110"

# 2進数(基数2)として整数に変換
p = int(value, 2)
print("2進数形式の整数 : ", p)

# デフォルト(10進数)として整数に変換
d = int(value)
print("デフォルト基数形式の整数 : ", d)

# float型へ変換
e = float(value)
print("対応するfloat値 : ", e)

出力結果

2進数形式の整数 : 22
デフォルト基数形式の整数 : 10110
対応するfloat値 : 10110.0

上記のコードでは、基数を指定した整数への変換も同時に行っています。「0010110」という文字列を2進数として解釈すると「22」になり、デフォルトの10進数として解釈すると「10110」になる点に注目してください。

tuple():タプル型への変換

tuple() 関数を使うと、文字列やリストをタプル型に変換できます。引数は1つで、文字列またはリストを渡します。

list():リスト型への変換

list() 関数を使うと、任意のデータ型をリスト型に変換できます。こちらも引数は1つです。たとえば文字列を渡すと、1文字ずつ要素に分解されたリストが生成されます。

dict():辞書型への変換

dict() 関数は、「(キー, 値)」という形式のタプルやリストを辞書型に変換します。なお、キーは一意である必要があり、重複したキーが存在する場合は後の値で上書きされるので注意しましょう。

実例:tuple()・list()・dict()による変換

# 型キャスト
str_inp = 'Tutorialspoint'

# 文字列からリストへ変換
j = list(str_inp)
print("文字列からリストへ : ")
print(j)

# 文字列からタプルへ変換
i = tuple(str_inp)
print("文字列からタプルへ : ")
print(i)

# ネストしたタプル
tup_inp = (('Tutorials', 0), ('Point', 1))

# タプルから辞書へ変換
c = dict(tup_inp)
print("タプルから辞書へ : ", c)

# ネストしたリスト
list_inp = [['Tutorials', 0], ['Point', 1]]

# リストから辞書へ変換
d = dict(list_inp)
print("リストから辞書へ : ", d)

出力結果

文字列からリストへ :
['T', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'p', 'o', 'i', 'n', 't']
文字列からタプルへ :
('T', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'p', 'o', 'i', 'n', 't')
タプルから辞書へ : {'Tutorials': 0, 'Point': 1}
リストから辞書へ : {'Tutorials': 0, 'Point': 1}

文字列を list() や tuple() に渡すと、1文字ずつ個別の要素に分解されることがわかります。また、(キー, 値) のペアを持つネストした構造を dict() に渡すことで、簡単に辞書を作成できます。

str():文字列型への変換

str() 関数を使うと、整数や浮動小数点数を文字列型に変換できます。引数は1つです。数値を文字列と連結して表示したい場合などによく使われます。

chr() と ord():文字とASCIIコードの相互変換

chr():整数型の値を、それに対応する文字型に変換します。
ord():文字型の値を、それに対応する整数型(ASCIIコード)に変換します。

実例:str()・ord()・chr()による変換

# 型キャスト
char_inp = 'T'

# 文字を対応する整数値(ASCIIコード)に変換
print("対応するASCII値 : ", ord(char_inp))

int_inp = 92

# 整数を対応するASCII文字に変換
print("対応するASCII文字 : ", chr(int_inp))

# 整数と浮動小数点数
inp_i = 231
inp_f = 78.9

# 文字列への変換
print("文字列への変換 :", str(inp_i))
print("文字列への変換 :", str(inp_f))

出力結果

対応するASCII値 : 84
対応するASCII文字 : \
文字列への変換 : 231
文字列への変換 : 78.9

ord('T') の結果は「84」、chr(92) の結果はバックスラッシュ「\」となり、文字とASCIIコードが相互に変換できることが確認できます。

まとめ

本記事では、Python 3.xにおける明示的な型キャストについて学びました。int()、float()、tuple()、list()、dict()、str()、chr()、ord() といった組み込み関数を使いこなせるようになると、データの前処理や入力値の検証など、さまざまな場面で柔軟に対応できるようになります。ぜひ実際のコードで試してみてください。

  1. Pythonの歴史:誕生から現代までの歩み

    Pythonは、2010年代に急速に人気を博したオープンソースのプログラミング言語です。データ分析、データ処理、Web開発など、多様なソフトウェア分野で第一選択肢となる汎用性の高さは、その柔軟性を如実に示しています。2015年以降、数多くの業界調査において、常に上位5位以内のプログラミング言語にランクインし続けています。 Pythonの生みの親 Pythonは、オランダ出身のプログラマーグイド・ヴァン・ロッサム(Guido van Rossum)によって生み出されました。彼は2018年7月に退任するまで、Pythonコミュニティにおいて「慈悲深き終身独裁者(BDFL:Benevolent

  2. Pythonのbin()関数の使い方:10進数を2進数に変換する方法

    Pythonのbin()関数は、10進数の整数を2進数(バイナリ)表現の文字列に変換する組み込み関数です。引数には正の整数でも負の整数でも指定できます。構文bin()関数の基本的な構文は以下のとおりです。bin(n) 引数:変換対象となる整数 戻り値:整数またはintオブジェクトを2進数表現した文字列 例外:引数にfloat型(浮動小数点数)を渡すとTypeErrorが発生します次の例では、正の整数と負の整数をそれぞれ2進数に変換しています。結果には「0b」という接頭辞が付き、それが2進数表現であることを示します。使用例n = input(Enter an integer :") d