データ型を変換する
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: "))
- Python最初に内部関数を実行します。テキストを取得するために
input("Enter your score: ")します。 - そのテキストは、すぐに外部関数に渡されます。
float() - その後、変換された数値が変数
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'>