## Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!

### Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial###### ZENG ZHIYI

2,097 Points# "When catching the values returned from a function, you have to have:" can u give me an example of this quiz?thx

I cant understand this quiz.

## 1 Answer

###### Chris Freeman

Treehouse Moderator 68,390 PointsFrom the quiz Two-ples:

"When catching the values returned from a function, you have to have:..."

"Catching", in this case, means assigning the returned values of a function call to a variable. Some functions return a single object, other functions may return multiple values. When returning multiple values, they are formed into a tuple.

It's an **All or One** rule. When more than one object is returned from a function, the receiving variables must be a single item, which will get assign the value of the tuple, or the exact number as the number number of objects returned so the return tuple can be properly unpacked.

Example, `len()`

returns one object, an `int`

, so exactly one variable can "catch" the output of this function:

```
length = len("this is a string")
```

Trying to catch more, throws an error as `int`

isn't an iterable collection:

```
In [24]: length = len("this is a string")
In [25]: length, width = len("this is a string")
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-25-1043f5ccb688> in <module>()
----> 1 length, width = len("this is a string")
TypeError: 'int' object is not iterable
```

In the example below `cir_area`

returns two values as a tuple. The receiving variables need to be either one or two ("all").

```
$ ipython
In [1]: import math
In [2]: def cir_area(radius):
...: """Return circumference and area of a circle given the radius."""
...: cir = 2 * math.pi * radius
...: area = math.pi * radius * radius
...: return cir, area # <-- (cir, area) also works here
...:
In [3]: tup1 = cir_area(1)
In [4]: tup1
Out[4]: (6.283185307179586, 3.141592653589793)
In [5]: cur, area = cir_area(1)
In [6]: cur
Out[6]: 6.283185307179586
In [7]: area
Out[7]: 3.141592653589793
```

So back to the quiz:

Choose the correct answer below:

- A The same number of variables as values
- This works!

- B Just a single variable
- This works!

- C Any number of variables up to the amount of return values (i.e. if 5 values come back, you can use 4 variables and the last will hold two values)
- Not in Python

- D Both A and B
- The Correct Answer

## ZENG ZHIYI

2,097 Points## ZENG ZHIYI

2,097 PointsIt helps me a lot.thx~