Как определить, сколько чисел лежит между максимальным и минимальным значениями из пользовательского ввода python

 for line in file:
    line = int(line)
    if line <= maximumValue:
        counter = counter + 1
    if line >= minimumValue:
        counter = counter + 1
    print (int(line))
file.close()

Я беру файл со списком чисел, скажем, от 1 до 10. Я хочу указать максимальное и минимальное значения, а также значения между минимальным и максимальным. Когда моя программа открывает файл, она выводит только общее количество чисел и не исключает те, которые выше максимального или ниже минимального. Что мне здесь не хватает и что я могу сделать, чтобы исправить это?


person starrynights89    schedule 02.11.2012    source источник
comment
Вы сравниваете строку с числами... int(line) должно быть первым в цикле   -  person JBernardo    schedule 02.11.2012
comment
строка = int(строка) Нравится это? У меня это уже есть в коде.   -  person starrynights89    schedule 02.11.2012
comment
Затем вы должны опубликовать свой реальный код. Кстати, вы считаете каждое значение дважды.   -  person JBernardo    schedule 02.11.2012
comment
Как у вас может быть что-то › max и ‹ min?   -  person Jon Clements♦    schedule 02.11.2012
comment
ваш вопрос говорит о ценностях, а не о счетах. чего ты действительно хочешь?   -  person monkut    schedule 02.11.2012
comment
Я хочу подсчитать значения между ними.   -  person starrynights89    schedule 02.11.2012
comment
вы можете отредактировать свой вопрос, чтобы он спрашивал, что вы хотите.   -  person monkut    schedule 02.11.2012


Ответы (2)


Python поддерживает обычные (удобочитаемые) неравенства:

numbers = []
counter = 0

with open('filename.txt', 'r') as handle:
    for line in handle:
        number = int(line)

        if minimumValue <= number <= maximumValue:
            numbers.append(number)
            counter += 1

print(counter)
print(numbers)

Также используйте with для открытия файлов. Вам не нужно беспокоиться о том, чтобы потом их закрыть.

person Blender    schedule 02.11.2012

Пример использования удобного свойства xrange:

MIN = 3
MAX = 7

valid_range = xrange(MIN, MAX+1)
with open('file') as fin:
    nums = (int(line) for line in fin)
    valid_vals = [num for num in nums if num in valid_range]
    # or if you just want count of valid values
    count = sum(1 for num in nums if num in valid_range)

print valid_vals, len(valid_vals)
person Jon Clements♦    schedule 02.11.2012