Kenta-K
@Kenta-K

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

python3 標準入力 縦に書かれた数字の読み込み

解決したいこと

python3で縦に10個数字が並んでいるとします (標準入力する)
10
15
8
13
4
27
31
6
19
2

この中で たとえば10以下の数字がいくつあるか求めたいとしたらどういうコードになるか

該当するソースコード

num1 = int(input())
num2 = int(input())
num3 = int(input())
num4 = int(input())
num5 = int(input())
num6 = int(input())
num7 = int(input())
num8 = int(input())
num9 = int(input())
num10 = int(input())



### 自分で試したこと
ここに問題・エラーに対して試したことを記載してください。
if文だとこのnum1~num10を10と比較するっぽくなると思いますが
それだといくつあるかを数えることにはならないので困ってます

あと 10個の数字を縦に読み込むときって上の書き方で大丈夫でしょうか


0

3Answer

count = 0
for i in range(10):
    input_num = int(input())
    if(input_num < 10):
        count += 1
print(count)
0Like

Comments

  1. 思いっきり端折りましたが、
    num1 = input()
    num2 = input()
    ...
    とやっていくのはあまりにも効率が悪いのでfor文を使って数行で抑えれるように工夫すれば
    「変数名が変わって一つ一つ比較する必要がある。。。」という悩みも解決することができます。
  2. @Kenta-K

    Questioner

    そうか for文!なるほど ありがとうございます

リスト内包表記を使って、配列データにする手もあります。
個数を数えるのも似たようなジェネレータ式でできます。

nums = [int(input()) for _ in range(10)]
count = sum(1 for value in nums if value <= 10)
count = sum(value <= 10 for value in nums)  # Trueは1として計算できるのでこれでも同じ
print(count)

追記: 10以下に修正しました。

0Like

他お二方の回答では 入力 < 10 のように比較していますが、これは10未満のとき真になります。質問通り10以下の数字(10を含む)の個数を求めるなら 入力 <= 10 としてください。

0Like

Your answer might help someone💌