[Tutor] pass tuples to user defined function(beginner)

James Reynolds eire1130 at gmail.com
Mon Nov 28 18:47:00 CET 2011


On Mon, Nov 28, 2011 at 12:32 PM, Mayo Adams <mayoadams at gmail.com> wrote:

> I am trying to pass a set of tuple strings from a file to a function I
> have defined.  Each tuple is on a separate line, and looks something
> like this:
>  ('note',2048)
> The function has two parameters , and is defined thus: def
> findindex(dval,ticks):
> Apparently, I need to cast the second value as an integer in the body
> of the function in order to work with it as such, but when I attempt
> int(ticks) I get
> ValueError: invalid literal for int() with base 10: '2048)'
>
> Upon searching for elucidation of this on the internet I find nothing
> but esoterica, at least as far as I am concerned.
> Any pointers would make me happy.
>
> --
> Mayo Adams
>
>
>
> mayoadams at gmail.com
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>



Your problem is in the error message:

ValueError: invalid literal for int() with base 10: '2048)'

observer, Python tells you this isn't a number: '2048)'

Indeed, this is correct, because you '2048)' is not a number.

What you really want to pass to '2048', which int('2048')

can understand just fine.

So, trim off the parenthesis, or something.

Alternatively, since you aren't actually passing a "tuple" but something
that looks like a python tuple as a string, you could eval it:

a = "('note',2048)"
b = eval(a)

print a, type(a), b, type(b)

>> ('note',2048) <type 'str'> ('note', 2048) <type 'tuple'>

In working with the second, you do normal tuple operations, like b[1] to
access that index

When passing to a function, you do this: findindex(*b)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20111128/20c04f30/attachment.html>


More information about the Tutor mailing list