help with a function

Paul McGuire ptmcg at austin.rr._bogus_.com
Tue May 16 22:53:02 EDT 2006


"Paul McGuire" <ptmcg at austin.rr._bogus_.com> wrote in message
news:mYvag.37952$CH2.9832 at tornado.texas.rr.com...
> "Lance Hoffmeyer" <lance at augustmail.com> wrote in message
> news:446a85c6$0$61170$ae4e5890 at news.nationwide.net...
> > Hey all,
> >
> > I'm new to python.  I keep getting an error when running this.
> > I'm sure there is an easy fix but I can't figure it out.
> > What am I doing wrong?  How do I fix it?
> >
> > def even_odd_round(num):
> >   if(round(num,2) + .5 == int(round(num,2)) + 1):
> >        if(int(num,0) % 2): #an odd number
> >        rounded_num = round(num,2) + .1
> >        else:                              #an even number
> >          rounded_num = round(num,2) - .1
> >     rounded_num = int(rounded_num)
> >     return rounded_num
> >
> > even_odd_round(5.5)
> >
> > Traceback (most recent call last):
> >   File "<interactive input>", line 1, in ?
> >   File "<interactive input>", line 3, in even_odd_round
> > TypeError: int() can't convert non-string with explicit base
> > >>>
>
>  1 def even_odd_round(num):
>  2   if(round(num,2) + .5 == int(round(num,2)) + 1):
>  3        if(int(num,0) % 2): #an odd number
>  4        rounded_num = round(num,2) + .1
>  5        else:                              #an even number
>  6          rounded_num = round(num,2) - .1
>  7     rounded_num = int(rounded_num)
>  8     return rounded_num
>  9
> 10 even_odd_round(5.5)
>
> > Traceback (most recent call last):
> >   File "<interactive input>", line 1, in ?
> >   File "<interactive input>", line 3, in even_odd_round
> > TypeError: int() can't convert non-string with explicit base
>

This error message tells us there is a problem on line 3, something to do
with the int() method call.

You have posted a number of posts this week, and it feels like you write a
bunch of code, run into a problem, then post it without trying to figure it
out.  I don't mean to offend, but really, many of your questions are pretty
basic:
- how do I use regex's (to extract data from an easily split string of
space-delimited numbers)?
- how do I round a number?
- I get this traceback, what's wrong with my program?
Please read up on the Python tutorials, and learn how to use the interactive
help.

Overall, c.l.py is pretty newbie-friendly, and a "n00b" question every so
often is no big deal - but you've got to make more of an effort yourself.
There is also a tutorial mailing list that is - I started to say "more
geared for beginners", but we have plenty of lurker beginners on c.l.py, I'm
sure - I'd say the tutorial mailing list is more willing to handhold new
Python programmers.

And a posted "thanks" once in a while is not bad etiquette either.

-- Paul





More information about the Python-list mailing list