print "Let's practice everything."
print 'You\'d need to know \'bout escapes with \\ that do \n newlines and \t tabs.'

poem = """
\tThe lovely world
with logic so firmly planted
cannot discern \n the needs of love
nor comprehend passion from intuition
and requires an explanation
\n\t\twhere there is none.

print "--------------"
print poem
print "--------------"

five = 10 - 2 + 3 - 6
print "This should be five: %s" % five

def secret_formula(started):
    jelly_beans = started * 500
    jars = jelly_beans / 1000
    crates = jars / 100
    return jelly_beans, jars, crates

start_point = 10000
beans, jars, crates = secret_formula(start_point)

print "With a starting point of: %d" % start_point
print "We'd have %d beans, %d jars, and %d crates." % (beans, jars, crates)

start_point = start_point / 10

print "We can also do that this way:"
print "We'd have %d beans, %d jars, and %d crates." % secret_formula(start_point)

I'm learning Python 2 and from the tutorial Learn Python The Hard Way and got confused with the previous lesson about function. My understanding of line 29 is the returned value of jelly_beans, jars, and crates were passed on to the variables beans, jars, and crates in line 29. Is that correct?

Is that not what you are seeing?

Since you are returning a tuple, perhaps wrapping the values of the return in parentheses will have the desired effect? The commas are just short hand to unpack the tuple anyhow, but you may be inadvertently returning just jelly_beans.

Your assumption is correct. Line 29 unpacks the 3 item tuple that is returned to the 3 variables beans, jars, crates

You can use a test print to show the return
print secret_formula(start_point)