前回は10+11=1011の原因を特定しました. その原因は受け取った入力が文字列型として扱われているためでした. 今回はデータ型の変換を行って10+11=21となるようにします. Pythonではデータ型を変換するいくつかの関数が用意されています.
a = 10
print(type(a))
b = str(a) # aを文字列にしたものをbに代入
print(type(b))
c = int(b) # bを整数型にしたものをcに代入
print(type(c))
以下のように表示されます.
a = input()
b = input()
a = int(a) # 文字列aを整数型に直す
b = int(b) # 文字列bを整数型に直す
print(a+b)
実行すると以下のようになります
a = int(input(a)) # 文字列aを整数型に直す
b = int(input(b)) # 文字列bを整数型に直す
print(a+b)
実行結果は同じです.
それでは演習問題を解いてみましょう. f(x) = x**3 + x**2 + x + 1 とします. 入力を受け取りf(x)の値を出力するようなプログラムを書いてください.
x = int(input()) # 入力を整数型に変換する
print(x**3 + x**2 + x + 1)
ちなみにこのプログラムは整数値に対してのみ正確に動作します.
試しに入力として1.1を渡してみましょう.
x = float(input()) # 入力をfloat型に変換する
print(x**3 + x**2 + x + 1)
今回は入力とデータ型について学びました. プログラミングにおいてデータ型に気を付けなければいけないということを実感してもらえたと思います. 次回はstr型 int型 float型 以外のより複雑なデータ型について解説します.