2016-08-25 9 views
1

整数のテキストファイルを読み込み、リストにして、すべての整数の平均を計算し、すべての非負の整数の平均を計算し、print最大と最小。私はすべての整数の平均を計算することができましたが、すべての非負整数の平均と最大値と最小値を得ることは困難です。テキストファイルからの非負の数の平均を計算する

ここ

私がこれまで持っているものです。

file = open("numberlist.txt", "r") 

sum = 0 

list = [] 
for num in file: 
    list.append(num) 

poslist = [] 
for number in file: 
    x = int(number) 
    if x > 0: 
     poslist.append(x) 
     sum += number 
posavg = sum/len(poslist) 
print("The number of non-negative integers is ", len(poslist)) 
print("The average of the non-negtive integers is ", posavg) 

答えて

0

番号が空白
(私は新しいラインで、あなたのコードから理解したり、) によって分離されている場合
、これは非常に短く、 "Pythonic"タスク!

まずは、数字
にファイル全体を読んでも近い自動的にファイルを持ってみましょう:

with open('numberlist.txt') as f: 
    nums = [int(x) for x in f.read().split() if int(x) >= 0] 

前の2行の後、あなたは、リスト内のすべての非負
番号はnums呼ばれてい!

avg = sum(nums)/len(nums) 

そして最小/最大は、次のようになります:

今、平均は以下のようになり

minNum, maxNum = min(nums), max(nums) 

そして、それがすべてです!私はこのコードを理解することによって、あなたが
Pythonで飛躍を作るので、この作業に
可能であると考えるよう

は今、私はできるだけ多くのPythonをプッシュ!

0

これは、あなたができる最小値と最大値の場合は、おそらく代わりに、正と呼ばれるべき:)

file = open("numberlist.txt", "r") 

sum = 0 
nonNegativeTotal = 0 
nonNegativeCount = 0 

list = [] 
for num in file: 
    list.append(num) 

for number in list: 
    x = int(number) 
    if x >= 0: 
     nonNegativeCount += 1 
     nonNegativeTotal += x 
    sum += x 
avg = sum/len(list) 
avgNonNegative = nonNegativeTotal/nonNegativeCount 
print("The number of integers is ", len(list)) 
print("The overall average is ", avg) 
print("The number of non-negative numbers is ", nonNegativeCount) 
print("The non-negative average is ", avgNonNegative) 

list.sort() 
print("The minimum number is ", list[0]) 
print("The maximum number is ", list[-1]) 

(あなたのコードの大部分を保持し、それに非負の部分を追加します?

minNum, maxNum = min(list), max(list) 
関連する問題