データ型を変換する

完了

Tip

詳細については、「 テキストと画像 」タブを参照してください。

input()関数を使用してユーザーからのデータを受け入れる場合、Pythonは常にテキスト (文字列) としてキャプチャします。ユーザーが数値を入力した場合でも同様です。 数学的計算でその値を使用するには、最初にデータ型を明示的に 変換 (または "キャスト") する必要があります。

型変換関数

Pythonには、ある型から別の型にデータを変換する組み込み関数が用意されています。 値をキャストするには、目的の変換関数でラップします。

Function に変換します Result
int() 整数 int("42") 42
float() 10 進数 float("3.14") 3.14
str() テキスト str(100) "100"

ユーザー入力の変換

ユーザー入力をテキストから数値に変換する手順を次に示します。

raw_input = input("Enter your score: ")  # Captured as text, e.g. "95"
score = float(raw_input)                 # Convert to a decimal number, e.g. 95.0
print(score + 5)                         # Math is now possible. Output: 100.0

このコードは、 https://aka.ms/python-coderのオンライン Python インタープリターで自分で実行してみてください。

1 行の短縮形

これらの手順を 1 行のコードに組み合わせることができます。 input()関数を変換関数内に入れ子にすると、Pythonは最初にユーザーの入力をテキストとしてキャプチャしてから、すぐに目的の型に変換します。

score = float(input("Enter your score: "))
  1. Python最初に内部関数を実行します。テキストを取得するためにinput("Enter your score: ")します。
  2. そのテキストは、すぐに外部関数に渡されます。 float()
  3. その後、変換された数値が変数 scoreに割り当てられます。

互換性のない値はどうなりますか?

数値として解釈できない値を変換しようとすると、Pythonはプログラムの実行を停止し、ValueErrorを発生させます。

user_age = int("hello") 

Output:

ValueError: invalid literal for int() with base 10: 'hello'

また、10 進数を整数に変換しようとすると、ValueErrorを取得Python。これは、四捨五入できないためです。

user_age = int("3.14") # Pythoncan't drop the decimal for you

ユーザーが 10 進数を入力する可能性があると思われる場合は、このエラーを回避するために、int()ではなくfloat()を使用します。 浮動小数点数は整数に変換できますが、Pythonは常に小数部を切り捨てます (たとえば、int(3.99)3になります)。

値の型の確認

組み込みの type() 関数を使用して、任意の変数のデータ型を確認できます。

score = "95"
print(type(score))         # Output: <class 'str'>

score = float(score)
print(type(score))         # Output: <class 'float'>