input()、int()、float()、type()
ユーザーからのレスポンスを受け取る関数です。
見てみましょう。
name = input("What's your name?")
print("Hi! " + name)
↓"あちゃ"を入力した場合
>>>
What's your name?あちゃ
Hi! あちゃ
ユーザーからの入力を受けると、それは文字列となります。
受けた文字列で何かを計算しようとする場合、文字列なので計算はエラーとなりますので、文字列を数値に変換させる必要があります。関数は「int()」です。
age = input("How old are you?")
diff = 100 - age
print("私より" + str(diff) + "歳若い")
>>>
diff = 100 - age
TypeError: unsupported operand type(s) for -: 'int' and 'str'
計算する時は、数値に変換して実行します。
diff = 100 - int(age)
print("私より" + str(diff) + "歳若い"
↓"12"を入力した場合
>>>
私より88歳若い
km = input("kmをマイルに変換→")
diff = km * 1.60934
print(km + "kmは " + "str(diff) + " マイルです。")
>>>
diff = km * 1.60934
TypeError: can't multiply sequence by non-int of type 'float'
浮動小数点時は、float型に変換する必要があります。
diff = float(km) * 1.60934
print(km + "kmは " + "str(diff) + " マイルです。")
>>>
kmをマイルに変換→20
20kmは 32.1868 マイルです。
ちなみに↓のような記述も可能です。
km = float(input("kmをマイルに変換→"))
diff = km * 1.60934
print(str(km) + "kmは " + str(diff) + " マイルです。")
または、
print("{0}kmは{1} マイルです。".format(km,diff))
>>>
kmをマイルに変換→10
10kmは 16.0934 マイルです。
print(type("acha"))
print(type(100))
print(type(1.0))
>>>
<class 'str'>
<class 'int'>
<class 'float'>