variable question

happy jdscript at gmail.com
Sat Jul 12 03:49:48 EDT 2008


On Jul 12, 8:05 am, Robert Lehmann <stargam... at gmail.com> wrote:
> On Fri, 11 Jul 2008 20:13:04 -0700, happy wrote:
> > Can a variable be considered the simplest of the data structures. I am
> > tutoring some kids about basics of programming using python. Not an
> > expert in computer sciences, but am a python enthusiast.
>
> Why do you need this additional layer of indirection? Just explain the
> real simple data structures à la "look, kids, a string is a chain of
> characters which are bytes actually. <insert explanation about encodings
> etc. here>". Although explaining encodings is an *important* thing (which
> many programmers still get wrong), it might be second priority to kids
> and you might just want to say "a string is text" and jump into higher-
> order data structures.
>
> > I wanted to know if it is correct to say a variable is a data structure,
> > it has a name and a value.
>
> Not at all. This sounds a lot like an explanation for variables in other
> languages (such as C, where the value also has a type). In Python, we use
> to speak of "names," not variables. They are more like name tags you can
> put on objects -- or you don't. Depending on the age/interest of your
> students, I'd insert an explanation about references, reference counting
> and garbage collection here (they usually find that quite understandable
> and it paves the way for The Real Stuff, even though you might argue that
> the refcounting gc is a CPython detail and might become obsolete with
> PyPy's rise <wink>).
>
> The important thing is really that Python's approach of references is
> nearly orthogonal to the common approach of variables. In other
> languages, variables are (as you described above) containers (a bucket,
> really!) in your memory where you can put stuff into. Assignment is
> usually a copy or pointer operation.
> Python does not care at all about your memory. You have abstract objects
> (incidentally saved in your memory, okay) with names being one mechanism
> to reference them. Here, assignment is always a "put the left-hand side
> name tag onto the right-hand side object".
>
> > Put a stack of variables in a special data
> > structure called a dictionary where the each name associates to a value.
> > If in a data structure, one uses numbers starting from 0 to describe the
> > name, it becomes a list and  so forth....
>
> First off, you really put objects in your data structures. Names are a
> one-way mapping -- the object does not know which name tags are assigned
> to it.
>
> Your explanation of dictionaries and lists sounds a little bit upside-
> down (not the mapping name->value or number->value makes it a dict or
> list -- the data structure makes it a mapping with this and that
> behaviour).
>
> HTH,
>
> --
> Robert "Stargaming" Lehmann

Thanks for the reply.
I think its better to leave the "teach kiddies" tutoring opportunity
for the python experts out there.
Would "python experts" have an appetite for newbies and "kiddies"?
Only time will tell...
I must really focus on learning the language better.

"Look kids, you will learn it when you grow up... Now get out of
here..."



More information about the Python-list mailing list