質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.53%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

391閲覧

Pythonで基準値に達したら値を取り出してカウント

fuckman2017

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/02/07 06:00

編集2023/02/07 17:15

実現したいこと

⚫が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は間隔値なので引き算不要です。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuckman2017

2023/02/07 06:08

for in range(5): a= int(input()) if a < 10: ・ ・ ・ こういう書き方で行おうとしております。
fuckman2017

2023/02/07 06:10

a = int(input())に5、15、4、7を入力して値を16にしたいです。
fuckman2017

2023/02/07 06:13

i=0 for i in range(5): a= int(input()) if a < 10: i = i + a このように記述しましたが、上手くいきません。
melian

2023/02/07 06:23

題意通りであれば、5, 15, 4, 7 を入力した場合は、 abs(15 - 5) = 10 # 10以下 abs(4 - 15) = 11 # 10より大きい abs(7 - 4) = 3 # 10以下 なので、結果は 10 + 3 = 13 になるのではないでしょうか。
fuckman2017

2023/02/07 06:25

すみません。間隔は引き算ではなくそのままの値で解釈していただければと思います。
melian

2023/02/07 06:29

なるほど、それでしたら、 lst = [5, 15, 4, 7] sumup = sum(i for i in lst if i <= 10) print(sumup) でしょう。
fuckman2017

2023/02/07 06:36

承知しました、これを元に動かしてみます。
bsdfan

2023/02/07 06:48

書かれているコードが正しく動かないのは、変数の i を合計値とforループで使いまわしているためです。
fuckman2017

2023/02/07 07:07

入力値をリスト化して、分岐した分だけ値取るという方法あるんですね。 あとはinput値のリスト化を回数分入力でリスト分だけsumで回すということですね。ありがとうございます。
TakaiY

2023/02/07 07:53

話が進んでいるようですが、 そもそも、質問にあるコードはインデントが無いので勘違いかもしれませんが、ちゃんと動くように思います。 「a = int(input())に5、15、4、7を入力して出力値を16にしたいです。このように記述しましたが、上手くいきません。」の上手くいかないというのはどういう状況でしょうか。 当初思った方法でちゃんと動くようにしたほうがいいと思います。
fuckman2017

2023/02/07 07:56

コードのインデントに関しては存じ上げており、ベタで書いてしまいました。
TakaiY

2023/02/07 08:02

そこであれば、質問編集時に、</>ボタンで出てくる書式の中に入れればインデントが保存されます。 もう一度書きますが、「上手くいかない」というのはどういう状況でしょうか。
guest

回答1

0

ベストアンサー

forループでのi_なりの加算用の変数とは別の名前にすればよいです。
あと、⚫が5つあるならループする回数(間隔)は5ではなく4だと思います。

Python

1i=0 2for _ in range(5): 3 a= int(input()) 4 if a < 10: 5 i = i + a 6print(i)

投稿2023/02/07 08:09

can110

総合スコア38230

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuckman2017

2023/02/07 08:15

すみません。5つあるのに間隔は1つ少ないことに気づきませんでした。 ありがとうございます。確認します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.53%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問