2016-11-20 7 views
-1

Ich versuche max/min aus einer Textdatei mit Zahlen zu berechnen, kann aber nicht herausfinden, wie. Ich konnte zählen und total, aber nicht max/min. Jede Hilfe würde sehr geschätzt werden. Vielen Dank!Python max Wert aus einer Textdatei

def main(): 
    counter = 0 
    total = 0 
    inputFile = open('Numbers.txt', 'r') 

    for numbers in inputFile: 
     numbers = float(numbers.rstrip()) 

     total += numbers 
     counter += 1 

    print('Count:', counter) 
    print('Total:', total) 
    print('Average:', total/counter) 

    inputFile.close() 

main() 
+0

Was meinst du mit max/min? Enthält Ihre Datei nur Zahlen? Sonst, wenn es Wörter enthält, möchten Sie max/min der Länge? –

Antwort

2

Einfachere Art und Weise zu erreichen, was Sie tun, ist:

num_list = [float(num) for num in inputFile.read().split()) 
# OR, num_list = map(float, inputFile.read().split()) 

counter = len(num_list) 
total = sum(num_list) 

# Your desired values 
max_val = max(num_list) 
min_val = min(num_list) 

Falls Sie es in Ihrem Code tun möchten, was Sie tun können:

min_value, max_value = 999, -999 # Range based on the value you are sure you data will lie within 

for numbers in inputFile: 
    numbers = float(numbers.rstrip()) 
    # ... your other logic 
    if min_val > numbers: 
     min_val = numbers 
    if max_value < numbers: 
     numbers = numbers 
0

Wenn Sie arbeiten mit Zahlen, ich würde vorschlagen, das numpy Modul zu verwenden. Mit ihm können Sie erreichen, was Sie wollen sehr schnell - je nach Eingabedatei:

import numpy as np 
x = np.loadtxt("Numbers.txt") 
print('Total:', np.sum(x)) 
print('Average:', np.average(x)) 
print('Max:', np.amax(x)) 
print('Min:', np.amin(x)) 

und vieles mehr ... wenn Ihre Eingabedatei zu lesen, nicht so einfach ist, können Sie mit np.genfromtxt versuchen zu extrahieren die Daten.

Verwandte Themen