2016-11-07 4 views
0

meine Datei enthält nur aus Zahlen:Python, die Schaffung eines Programms, die Zahlen aus einer Datei liest und berechnet die Summe

22 33 56 2 1.4 67.4 
34.5 49 11.2 

ich ein Programm mit Python-Code erstellt werden soll, die eine Datei mit Zahlen liest (nicht muss dies sein) und berechnet dann die Summe dieser Zahlen.

weiß jemand, wie man mit diesem fortfährt?

okej so nach Ihrer Hilfe habe ich versucht, meine eigene Version basiert machen auf das, was Ive in der Klasse gelernt bisher:

my_file = open("mesurements.txt", "r") 

sum1 = 0 

for line in my_file.readlines(): 

    line = line.strip("\n").split() 

    for i in line: 

     sum1 += float(i) 

print(sum1) 

do u denken, so etwas wie dies korrekt ist (es funktioniert für mich, aber es könnten einige Fehler maby sein)

+4

Viele Leute hier wissen das. Aber zuerst, probier es selbst aus. Wenn Sie auf einen bestimmten Fehler/ein Problem stoßen, bei dem Sie stecken bleiben, können Sie zurückkommen. – ncw

+1

Sie sollten zuerst die Datei im Lesemodus öffnen und dann die Zahlen Zeile für Zeile oder alle gleichzeitig lesen. Während des Lesens können Sie die Zeilen mit unnötigen Leerzeichen entfernen und sie aufteilen, wenn mehr als eine Zahl in einer Zeile angegeben ist. Danach sollte es einfach sein, die Summe zu bekommen. Versuch es selber! – Ashan

+0

Ihre Version funktioniert jetzt gut, guter Job. Wenn Ihnen eine der Antworten dabei geholfen hat, markieren Sie sie als akzeptiert. Weitere Informationen zum Annehmen einer Antwort finden Sie unter [hier] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). – ncw

Antwort

0

Hier ist Ihre Antwort Arbeits:

values = [float(x) for x in open('demo.txt').read().split()] 
print sum(float(i) for i in values) 
0

Sagen die Datei numbers.txt Ihre Zahlen enthält:

012.351.
22 33 56 2 1.4 67.4 
34.5 49 11.2 

die folgenden Versuchen Sie, die Summe aller Zahlen in der Datei zu berechnen:

def sum_file(file): 
    with open(file, "r") as f: 
     return sum([sum([float(x) for x in line.strip().split(' ')]) for line in f]) 

#print the result 
print("{0:.2f}".format(sum_file("numbers.txt"))) 

Test für 6x6-Matrix:

9.54 3.62 9.13 9.24 6.94 1.61 
2.32 1.72 8.06 8.89 9.21 6.06 
4.46 3.42 8.44 4.83 9.90 1.84 
2.38 6.83 7.04 9.66 1.53 8.92 
3.06 9.02 8.69 7.18 9.18 1.29 
1.55 7.57 9.20 3.90 3.84 2.56 

sum_file("numbers.txt") Ergebnisse in 212.63.

Verwandte Themen