[Tutor] Making a Primary Number List generator

Marc Tompkins marc.tompkins at gmail.com
Tue May 14 18:11:22 CEST 2013


On Tue, May 14, 2013 at 1:51 AM, Alan Gauld <alan.gauld at btinternet.com>wrote:

> On 14/05/13 00:01, Daniel Magruder wrote:
>
>  I am still confused as what return does.
>>
>
> This isn't a direct response to Alan, but to something the OP expressed
many, many messages ago...

The OP expressed some confusion between what a function DOES and what it
RETURNS.  It occurs to me that the print() function (or, more generically,
ANY print() function - it doesn't have to be Python 3) is a good
demonstration.

Our first exposure to print() is very simple: display something on the
screen - what could possibly go wrong?  However, print() can redirect its
output to files, printers, skywriters, etc. - and sometimes it will be a
real question whether print() succeeded in producing any output.  (If your
program is trying to write data into a file, you'd probably like to know
whether it worked or not.)  So print() - like all functions - has an
optional return value, which your program can read to see whether it needs
to retry, display an error message, etc.

Again, the return value of print() - e.g. success/failure - is separate
from what print() actually prints.

In general, all functions can have effects - like the output of print() -
and/or return something.  Sometimes you're interested in one and not the
other; for instance, most of the time you don't care about print()'s return
value.  On the other hand, there's a style of programming called
"functional", in which everything is a function and NOTHING has any side
effects at all - I must confess, I find it hard to get my head around that.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20130514/cd555d01/attachment.html>


More information about the Tutor mailing list