Beginning Question about Python functions, parameters...

MRAB python at mrabarnett.plus.com
Mon Nov 23 14:12:12 EST 2009


j wrote:
> On Nov 23, 12:37 pm, Neo <n... at picture-art.eu> wrote:
>> astral orange schrieb:
>>
>>
>>
>>> Hi, I am trying to teach myself Python and have a good book to help me
>>> but I am stuck on something and I would like for someone to explain
>>> the following piece of code for me and what it's actually doing.
>>> Certain parts are very clear but once it enters the "def store(data,
>>> full_name): ...." function and the "def lookup()..." function things
>>> get a little confusing for me. Specifically, lines 103-108 *and* Lines
>>> 110-111.
>>> Lastly, I am not sure how to print the results I've put into this
>>> program either, the book I'm reading doesn't tell me. As you can tell,
>>> I am a beginner and I don't truly understand everything that is going
>>> on here...a lot, but not all....
>>> Here is the code:
>>>  92 def init(data):
>>>  93     data['first'] = {}
>>>  94     data['middle'] = {}
>>>  95     data['last'] = {}
>>>  96
>>>  97 def store(data, full_name):
>>>  98     names = full_name.split()
>>> 100     if len(names) == 2: names.insert(1, '')
>>> 101     labels = 'first', 'middle', 'last'
>>> 103     for label, name in zip(labels, names):
>>> 104         people = lookup(data, label, name)
>>> 105     if people:
>>> 106         people.append(full_name)
>>> 107     else:
>>> 108         data[label][name] = [full_name]
>>> 109
>>> 110 def lookup(data, label, name):
>>> 111     return data[label].get(name)
>>> 112
>>> 113
>>> 114 MyNames = {}
>>> 115 init(MyNames)
>>> 116 store(MyNames, 'John Larry Smith')
>>> 117 lookup(MyNames, 'middle', 'Smith')
>> If it tells you so I'm not really sure its a good book - partially for
>> teaching you into the unpythonic way to do things (above stuff, if its
>> not a counter example, should really go into a class)
>>
>> Have you tried the tutorial first? Its online and very easy to follow
>> from the very beginning but you can also skip parts if you are sure you
>> already understand it:
>>
>> http://docs.python.org/tutorial/
>>
>> HTH
>> Tino
> 
> The book is "Apress Beginning Python 2nd Edition". I think what you
> are saying is if I don't understand all of the code I should go into a
> class? Unfortunately I don't have the money or time to enroll into a
> class and even if I did they wouldn't be teaching Python it would be
> Java instead...and I've already taken Java before...so that's not
> really an option...
> 
[snip]
No, he's saying that the _functions_ shown in the code should go into a
class, but the main criticism is that judging by the code shown above it
doesn't look like a good book, and you should look at the on-line
tutorial first if you haven't already done so.




More information about the Python-list mailing list