Python で文字列を Int に変換する方法 (安全なキャストとベース)

Python で int() 関数を使用して文字列を整数に変換する方法を学びます。エラーを安全に処理し、数値を 2 進数、8 進数、または 16 進数から変換します。

エディターでこのソリューションを試してください

概要

数値の文字列表現を実際の整数に変換することは、アプリケーション開発において頻繁に行われるタスクです。このプロセスはキャストと呼ばれることが多く、生のユーザー入力を処理する場合、構成ファイルを読み取る場合、コマンドライン インターフェイスからの引数を解析する場合、または Web からデータをスクレイピングする場合に不可欠です。 Python は厳密に型指定された言語であるため、最初に数値をキャストせずに数値の文字列表現に対して数学的演算を実行することはできません。

Python の組み込み `int()` コンストラクターは、この変換の主要なツールです。最も単純な形式では、数値文字列 (`"42"` など) を `int()` に渡すと、それに相当する整数が返されます。ただし、数値以外の文字列 (`"hello"` など) または浮動小数点数を表す文字列 (`"3.14"` など) を渡すと、`ValueError` が発生します。堅牢なアプリケーションを作成するには、予期しない入力を適切に処理するためにキャスト操作を「try-excel」ブロックでラップするのが標準的な方法です。

標準の Base-10 変換を超えて、`int()` 関数はオプションの `base` 引数を受け入れます。これにより、2 進数 (基数 2)、8 進数 (基数 8)、または 16 進数 (基数 16) など、さまざまな数体系で数値を表す文字列を簡単に解析できます。たとえば、`int("1010", 2)` はバイナリ文字列を 10 進整数 `10` に正しく解析し、低レベルまたは特殊な数学的プログラミングのための多用途ツールになります。

コードと実行の出力

このスクリプトは、文字列の整数への変換、例外の処理、およびさまざまな基本表現の変換を示します。

# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")

# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
    result = int(invalid_str)
except ValueError:
    print(f"Could not convert '{invalid_str}' to an integer.")

# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))
端子出力
Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255

段階的な実装

  • 数値文字列を組み込みの int() 関数に渡します。
  • キャスト操作を try...excect ValueError ブロックでラップして、無効な形式を処理します。
  • 2 番目の引数 (base=16 など) を指定して、他の基数で書かれた文字列値を変換します。

よくある質問

「12.34」のような浮動小数点文字列を整数に変換するにはどうすればよいですか?

まずこれを float に変換し、次に int(float("12.34")) に変換する必要があります。 int("12.34") を直接呼び出すと、ValueError が発生します。

文字列を int に安全に変換できるかどうかを確認するにはどうすればよいですか?

.isdigital() 文字列メソッドを使用できますが、負の符号または空白の場合は False を返すことに注意してください。 Try-Except ブロックは最も堅牢な方法です。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。