情報処理技術者試験解説チャンネル

応用情報技術者試験をはじめとする情報処理技術者試験の午後問題では、「過去10年分を確実に理解しているか」が合格ラインを左右するといわれています。当チャンネルでは、その10年分の午後問題を要点だけに絞り、約10分のコンパクトな解説としてまとめました。限られた時間でも効率よく学習を進められる構成です。

Pythonのint(), float(), complex(): よくあるミスとエラー解消&対処法

Pythonのint(), float(), complex(): よくあるミスとエラー解消&対処法

Pythonにおいて、int()float()complex()といった組み込み関数は、数値を整数、浮動小数点数、複素数に変換する際に利用されます。しかし、これらの関数を使う際にはいくつかのミスやエラーが発生することがあります。この記事では、これらの組み込み関数のよくあるミスとエラーに対する解消法と対処方法について、具体的なコード例を交えながら詳しく解説します。

1. int()関数の基本的な使用法

まず、int()関数の基本的な使用法を確認しましょう。この関数は文字列や浮動小数点数を整数に変換します。

# 文字列を整数に変換
num_str = "42"
result_int = int(num_str)
print(result_int)  # 出力: 42

# 浮動小数点数を整数に変換
num_float = 3.14
result_int_from_float = int(num_float)
print(result_int_from_float)  # 出力: 3

2. float()関数の基本的な使用法

次に、float()関数の基本的な使用法を確認しましょう。この関数は文字列や整数を浮動小数点数に変換します。

# 文字列を浮動小数点数に変換
num_str = "3.14"
result_float = float(num_str)
print(result_float)  # 出力: 3.14

# 整数を浮動小数点数に変換
num_int = 42
result_float_from_int = float(num_int)
print(result_float_from_int)  # 出力: 42.0

3. complex()関数の基本的な使用法

最後に、complex()関数の基本的な使用法を確認しましょう。この関数は実数と虚数から複素数を作成します。

# 実数と虚数から複素数を作成
real_part = 1.0
imag_part = 2.0
result_complex = complex(real_part, imag_part)
print(result_complex)  # 出力: (1+2j)

4. よくあるミスとエラー

ミス1: 不正な文字列を変換すると ValueError が発生する

int()float()関数に文字列以外の不正な値を渡すと、ValueErrorが発生します。

num_str = "abc"
result_int = int(num_str)
# ValueError: invalid literal for int() with base 10: 'abc'

このエラーは、整数に変換できない文字列が渡されたことを示しています。

ミス2: float()に文字列以外の型を渡すと TypeError が発生する

float()関数に文字列以外の型(例: リストや辞書)を渡すと、TypeErrorが発生します。

num_list = [1, 2, 3]
result_float = float(num_list)
# TypeError: float() argument must be a string or a number, not 'list'

ミス3: complex()に文字列以外の型を渡すと TypeError が発生する

同様に、complex()関数に文字列以外の型を渡すと、TypeErrorが発生します。

num_dict = {"real": 1, "imag": 2}
result_complex = complex(num_dict)
# TypeError: complex() argument must be a string or a number, not 'dict'

5. エラー解消と対処法

エラー1: ValueErrorの解消

ValueErrorが発生した場合、文字列が整数や浮動小数点数に変換できるかどうかを確認します。正しい数値の文字列であるかを保証し、変換可能な形式かどうかを確認します。

num_str = "42"
try:
    result_int = int(num_str)
    print(result_int)
except ValueError as e:
    print(f"エラーが発生しました: {e}")

エラー2, エラー3: TypeErrorの解消

TypeErrorが発生した場合、float()complex()関数に渡す前に変換するデータの型を確認します。正しい型に変換するか、適切な型のデータを使用します。

num_list = [1, 2, 3]
try:
    result_float = float(num_list)
    print(result_float)
except TypeError as e:
    print(f"エラーが発生しました: {e}")

これにより、float()complex()関数を安全に使用できます。

6. まとめ

int()float()complex()関数はPythonにおいて非常に便利な数値変換関数ですが、不正な値や型を渡すとエラーが発生します。エラーが発生した場合には、そのエラーメッセージを確認し、正しいデータ型や値を使用するように心がけましょう。これにより、より安全で正確な数値変換が可能となります。