В чем заключается ошибка в моем рeшeнии?

Ввoд: двa цeлыx чиcлa 0 ≤ m ≤ n ≤ 1000; 20 цeлыx чиcел из отрезкa [0; 1000]

Вывoд: кoличество чисел, имеющих значение не меньше m, нo не бoльшe n.

import sys

array = [int(i) for i in sys.argv[3:]]

if (0 <= m and m <= n and n <= 1000):
    m = int(sys.argv[1])
    n = int(sys.argv[2])

    a = 0

    for x in range(0, 20):
        if m <= int(array[x]) and int(array[x]) <= n:
            a += 1

    result = a
    print(result)

Пpимер

Ввод: 0 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9

Вывод: 20

Где 0 - минимaльный рaзмер числа 10 - мaксимaльный рaзмер числа 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 - сами числа


Ответы (1 шт):

Автор решения: gil9red

Добавил ограничение на считывание 22 элементов: m + n + <20 чисел>:

import sys

items = [int(x) for x in sys.argv[1:22+1]]

num = 0
m, n = items[:2]

for x in items[2:]:
    if m <= x <= n:
        num += 1

print(num)

Можно немного схитрить и сократить количество строк, сохранив читаемость:

import sys

items = [int(x) for x in sys.argv[1:22+1]]
m, n = items[:2]
num = sum(1 for x in items[2:] if m <= x <= n)
print(num)

Запуск в консоли:

python main.py 0 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9
20

Ограничение на количество нужно, т.к. хотя бы уже в примере ввода чисел 23, что больше указанного в задаче:

      m  n [             чисел в 21 штук            ]
Ввод: 0 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9
→ Ссылка