Wow! I checked the list at lunchtime and there were only a few things here, then I check again now and lots of stuff from my tutor! Fortunately most of it has been answered already - thanks folks - but I feel honour bound to contribute something...
> What is the difference between, > >>>> def f(x): > ... return x >>>> def f(x): > ... print x > ... >>>> f(4) > 4 > Both give same results. So, why return statement is needed? As has been stated the print displays on the output The return sends the value of the function back to the caller. If the caller is the interactive prompt(as here) the prompt prints the value so the effect is the same. If you need to save the result for later use then you must store it in a variable. You cannot do that if the function just prints the result - the value gets lost when the function ends. Try this: >>> def f(x): return x ... >>> def g(x): print x ... >>> fVal = f(4) >>> gVal = g(4) 4 Now notice that the two functoons behave differently f() doesn't display a value but g does because of the print statement. So far g seems to win. But... >>> print fVal 4 >>> print gVal None >>> Now f() wins because we have stored its value in fVal and can use it over and over again as we wish. The reason gVal has stored None is because any function that does not return an explicit value is treated as retiurning the special value None. Since g() only printed the parameter 4 but did not return it gVal stored a None value. If we return the value of f() we can display it any time we want by using print: >>> print f(4) 4 >>> So we do not lose anything by using return instead of print but we gain a lot by being able to store the returned value. HTH, Alan G Author of the learn to program web tutor http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor