On Thursday, October 2, 2014 1:30:03 PM UTC+5:30, Steven D'Aprano wrote: > Chris Angelico wrote:
> > wrote: > >> So by now you know there are 2 kinds of return: > >> So the morals in short: > >> 1. Stick to the return that works -- python's return statement -- > >> and avoid the return that seems to work -- the print statement > > Please. There are not two types of return; there are two completely > > different things here. Don't pretend that print is a bad form of > > return. It isn't. > I strongly agree with Chris here. The OP's problem was due to confusion > between print and return, and the solution is to learn the difference > between printing output to the screen and returning values from a function, > and under what circumstances Python will automatically print said returned > values as a convenience. Conflating the two as "2 kinds of return" is an > invitation to even more confusion: "which was the 'good' return again?". Right and the OP subject as well as post are essentially that conflation: > Any idea why 'None' is getting passed even though calling the donuts(4) > alone returns the expected value? And further if you consider that the explanations have aided, here's the most recent 'conclusion': > * return 'Number of donuts: ',count returns a tuple like: > ('Number of donuts: ',9) > * To just print the string without returning it as tuple , use string > formatting. You find this understanding satisfactory?? -- https://mail.python.org/mailman/listinfo/python-list