0
 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 までの数字のリストのファイルを取得しています。最大値と最小値、および最小値と最大値の間の値をリストしたいと考えています。プログラムでファイルを開くと、数値の合計のみが出力され、最大値よりも大きいか最小値よりも小さい数値は除外されません。ここで何が欠けていますか?それを修正するにはどうすればよいですか?

4

2 に答える 2

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ファイルを開くために使用します。後でそれらを閉じることを心配する必要はありません。

于 2012-11-02T02:01:19.870 に答える
0

の便利なプロパティを使用した例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)
于 2012-11-02T02:07:15.783 に答える