# [Tutor] still not getting 'it' (fwd)

Rosalee Dubberly dubberlyr at msn.com
Thu Oct 6 21:41:34 CEST 2005

```I am going to 'play' with this in IDLE. I have used your tutorial posted on
the Net. Good stuff!!
Thanks for breaking this down into different examples.

You are a great instructor.

>From: Danny Yoo <dyoo at hkn.eecs.berkeley.edu>
>To: Tutor <tutor at python.org>
>CC: dubberlyr at msn.com
>Subject: Re: [Tutor] still not getting 'it' (fwd)
>Date: Thu, 6 Oct 2005 12:27:16 -0700 (PDT)
>
>
>
> > No the question doesn't seem to simple at all, I appreciate your help. I
> > have totally confused myself and I need to start from the beginning to
> > sort things out. Thanks for you time and help.
> >
> > >>>double = 2 * 5
> > >>>print 'The sum of 2 times 5 equals', double
> > The sum of 2 times 5 equals 10
>
>
>Hi Rosalee,
>
>Ok, that's probably the problem then: it sounds like you might not be
>familiar with writing and using functions.
>
>
>Let's do a quick primer.  For the purposes of trying to connecting to
>things that you should know about, I'll borrow a math example, but if you
>want, we can make examples using different domains besides math.
>
>In algebra math classes, we may have seen things like:
>
>     f(x) = 2 * x
>
>We might write on a blackboard such things like:
>
>     f(2) = 2 * 2 = 4
>     f(8) = 2 * 8 = 16
>
>In a math function definition like "f(x) = 2 * x", we're trying to capture
>the concept of doubling something, and we give that particular concept the
>name 'f', just so we can talk about it later.
>
>
>A "function" in Python is sorta like a "function" in mathematics.  (It's
>But anyway, the doubling function above can be written in Python like
>this:
>
>######
>def f(x):
>     return 2 * x
>######
>
>In a Python function definition like "def f(x): return 2 * x", we're
>trying to capture the process of doubling something, and we give that
>particular process the name 'f', just so we can use it later on.
>
>
>Let's play with this 'f' function that we've defined.  From the
>interactive interpreter, we can enter in the function, and then test it
>out on a few inputs:
>
>######
> >>> def f(x):
>...     return 2 * x
>...
> >>>
> >>> f
><function f at 0x403a6ae4>
>######
>
>When we say 'f', Python knows that we're talking about some function.
>(Um... ignore the weird '0x403a6ae4' thing for now.  *grin*)  The main
>concept here is that 'f' is now a name for some thing that we can hold and
>use, just like a number or a string.
>
>
>Let's try using 'f':
>
>######
> >>> f(2)
>4
> >>> f(3)
>6
> >>> f(8)
>16
>######
>
>We can use 'f' with different inputs, and we get back different outputs.
>
>And we can even use f() like this:
>
>######
> >>> f(f(2))
>8
>######
>
>
>
>Usually, programmers like to give their functions nicer names than 'f':
>mathematicians like brevity, but programmers often like to be able to read
>their programs.  We can name 'f' as 'double':
>
>######
> >>> def double(x):
>...     return 2 * x
>...
> >>> double(double(2))
>8
>######
>
>
>And we can follow this naming idea a bit further, and rename 'x' to
>something else, like 'something':
>
>######
> >>> def double(something):
>...     return 2 * something
>...
> >>> double(42)
>84
>######
>
>"To double something, just multiply 2 to that something."
>
>Does this make sense so far?
>
>
>Please feel free to ask questions on this:  this is very fundamental
>stuff, and if you're getting stuck here, we need to figure out what we can
>to do help get you unstuck.
>
>
>Good luck!
>

_________________________________________________________________
Is your PC infected? Get a FREE online computer virus scan from McAfee®