データ型を変換する

完了済み

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'>