On 2014-08-30 13:13, Alan Gauld wrote:

BUT, there is a much better way using Pythons for loop:

total = 0
for line in infile:
    total += float(line)

That automatically reads all the lines ion the file so
you don't need to check for empty lines, set up the
first line etc.

     infile.close()

And if you use Pythons 'with' structure you don't
need the close either, so your whole becomes

total = 0
with open('/Users/richarddillon/Desktop/numbers.txt', 'r') as infile:
    for line in infile:
        total += float(line)
print(total)

Which is shorter, safer, and more readable.

HTH

..but isn't there a problem if the file contains empty lines?

float("\n")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float:
float('')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float:

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to