パイソンの組み込み関数を使って足し算を作ってみます。
input関数を使って、計算したい数字を決めるようにします。
詳しい説明に入る前にコードを作成してます。
※今回のコードを試すだけであれば、オンラインエディタを使用する事をおすすめします。
print("2つの数を入力して足し算をします") n1 = input("1つめの数を入力してください") n2 = input("2つめの数を入力してください") gokei = n1 + n2 print("答えは"+gokei+"です")
2行目と3行目で使用しているinput関数ですが、実行すると指定した文字列を出力した後にキーボードから数字や文字の値を入力できるようになります。
値を入力してエンターキーを押すと、左側の変数(上のコードのn1やn2)に値が入り、以後の処理で値を使う事が出来ます。
最後の行の
print("答えは"+gokei+"です")
ですが、複数の文字列の値を繋ぐ(文字列の連結)場合は + の演算子で繋ぐことが出来ます。
コードを実行してみます。
1回目のinputでは 5 を入力して、2回目は 4 という数字を入力してみます。
2つの数を入力して足し算をします 1つめの数を入力してください 5 2つめの数を入力してください 4 答えは54です
入力した値を足し算したら正解は 9 になるはずですが、結果が 54 になっています。
パイソンは何故計算を間違えてしまったのでしょうか?
inputから得られた値は数字のように見えて文字列として扱われています。
2つの文字列(今回であれば5と4)を + で処理をすると文字列の連結になり、54という文字列が完成します。
では、どうやって正しい計算をしてもらえば良いでしょうか?
int関数を使って、文字列を数字(整数)に変換してから計算をする必要があります。
上記の内容を加味してコードを書き換えますと、
print("2つの数を入力して足し算をします") n1 = input("1つめの数を入力してください") n2 = input("2つめの数を入力してください") gokei = int(n1) + int(n2) print("答えは"+gokei+"です")
になります。
コードを直した後に同じ様に 5 と 4 を入力してみます。
コードは正常に終了せずに
TypeError: can only concatenate str (not "int") to str on line 5 of main.py
というエラーになりました。
このエラーは最後の行の
"答えは"+gokei+"です"
が文字列 + 数字 + 文字列の順に並んでいて、文字列の連結の機能を実行することが出来ません。
この問題を解決するためには、gokeiの変数の値を数字から文字列に変換する必要があります。
この処理を実現するためにstr関数を使います。
str関数を使ってコードを書き直しますと、
print("2つの数を入力して足し算をします") n1 = input("1つめの数を入力してください") n2 = input("2つめの数を入力してください") gokei = int(n1) + int(n2) print("答えは"+str(gokei)+"です")
になります。
このコードを実行してみますと、
2つの数を入力して足し算をします 1つめの数を入力してください 5 2つめの数を入力してください 4 答えは9です
エラーが発生せずに計算を終了することができました。
組み込み関数について