実現したいこと
⚫が5つあり、⚫の間隔の基準値以下なら値を取り出してその値をカウントする。
⚫が5つ並んでおり、間隔が10以下ならその間隔を取り出して値を取り出して、加算したいです。
5,15,4,7をそれぞれ入力して、10以下の場合、その値を取りだして加算する。
For文で記載したいです。
※記載コード
i=0
for i in range(5):
a= int(input())
if a < 10:
i = i + a
print(i)
※
fuckman2017
2023/02/07 15:10
a = int(input())に5、15、4、7を入力して出力値を16にしたいです。
このように記述しましたが、上手くいきません。
※5、15、4、7は間隔値なので引き算不要です。
よろしくお願いいたします。
for in range(5):
a= int(input())
if a < 10:
・
・
・
こういう書き方で行おうとしております。
a = int(input())に5、15、4、7を入力して値を16にしたいです。
i=0
for i in range(5):
a= int(input())
if a < 10:
i = i + a
このように記述しましたが、上手くいきません。
題意通りであれば、5, 15, 4, 7 を入力した場合は、
abs(15 - 5) = 10 # 10以下
abs(4 - 15) = 11 # 10より大きい
abs(7 - 4) = 3 # 10以下
なので、結果は 10 + 3 = 13 になるのではないでしょうか。
すみません。間隔は引き算ではなくそのままの値で解釈していただければと思います。
なるほど、それでしたら、
lst = [5, 15, 4, 7]
sumup = sum(i for i in lst if i <= 10)
print(sumup)
でしょう。
承知しました、これを元に動かしてみます。
書かれているコードが正しく動かないのは、変数の i を合計値とforループで使いまわしているためです。
入力値をリスト化して、分岐した分だけ値取るという方法あるんですね。
あとはinput値のリスト化を回数分入力でリスト分だけsumで回すということですね。ありがとうございます。
話が進んでいるようですが、 そもそも、質問にあるコードはインデントが無いので勘違いかもしれませんが、ちゃんと動くように思います。
「a = int(input())に5、15、4、7を入力して出力値を16にしたいです。このように記述しましたが、上手くいきません。」の上手くいかないというのはどういう状況でしょうか。
当初思った方法でちゃんと動くようにしたほうがいいと思います。
コードのインデントに関しては存じ上げており、ベタで書いてしまいました。
そこであれば、質問編集時に、</>ボタンで出てくる書式の中に入れればインデントが保存されます。
もう一度書きますが、「上手くいかない」というのはどういう状況でしょうか。

回答1件
あなたの回答
tips
プレビュー