beginner's python help

hrishy hrishys at yahoo.co.uk
Sun Sep 6 03:46:43 EDT 2009


Hi Chris

What if i want to log that bad data and continue processing is there a way to do that ?

regards


--- On Sun, 6/9/09, Chris Rebert <clp2 at rebertia.com> wrote:

> From: Chris Rebert <clp2 at rebertia.com>
> Subject: Re: beginner's python help
> To: "Maggie" <la.foma at gmail.com>
> Cc: python-list at python.org
> Date: Sunday, 6 September, 2009, 8:15 AM
> On Sun, Sep 6, 2009 at 12:00 AM,
> Maggie<la.foma at gmail.com>
> wrote:
> > code practice:
> >
> > test = open ("test.txt", "r")
> > readData = test.readlines()
> > #set up a sum
> > sum = 0;
> > for item in readData:
> >        sum += int(item)
> > print sum
> 
> A slightly better way to write this:
> 
> test = open("test.txt", "r")
> #set up a sum
> the_sum = 0 #avoid shadowing the built-in function sum()
> for line in test: #iterate over the file directly instead
> of reading
> it into a list
>         the_sum += int(line)
> print the_sum
> 
> > test file looks something like this:
> >
> > 34
> > 23
> > 124
> > 432
> > 12
> >
> > when i am trying to compile
> 
> No, the error is happening at runtime. Pretty much only
> SyntaxErrors
> occur at compile-time.
> 
> > this it gives me the error: invalid
> > literal for int() with base 10
> >
> > i know a lot of people get this and it usually means
> that you try to
> > cast a string into an integer and this string does not
> really contain
> > a “digit”..so I am just not sure how to correct it
> in this case...
> 
> I would recommend putting a `print repr(line)` inside the
> loop, before
> the "+=" line. This will show the input int() is getting so
> you can
> see out what the bad input is that's causing the error and
> thus debug
> the problem.
> 
> Cheers,
> Chris
> --
> http://blog.rebertia.com
> -- 
> http://mail.python.org/mailman/listinfo/python-list
> 


      



More information about the Python-list mailing list