Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Python Collections (2016, retired 2019) Tuples Packing

Nader Alharbi
Nader Alharbi
2,253 Points

Tuples packing

Hello everyone. I already answered and passed this question with this code below

def multiply(*numbers):
    total = 1
    for number in numbers:
        total = total * number
    return total

There was a hint given by the instructor, Slices (might) be helpful here.

My question is, how can i use the slice method to solve this problem? why did the instructor give me this hint?

1 Answer

Louise St. Germain
Louise St. Germain
19,412 Points

Hello Nader,

Good question! Your answer above is fine.

You could in theory have also used a recursive function with some slicing, which would follow this format:

def multiply(*numbers):
    # if tuple length is longer than one:
        # return first item in tuple * multiply(remaining items in the tuple - this would be a slice)
        # (the above line is the recursion since the function is calling itself again)
    # else, if there is just one item in the tuple, return it without doing anything to it.
    # (the above line is what will end the recursion.)

I hope this gives some ideas!

Nader Alharbi
Nader Alharbi
2,253 Points

Well explained. Thank you :)

Chris Freeman
Chris Freeman
Treehouse Moderator 68,064 Points

Here’s a slice version, though I don’t see how this a better the OP solution.

def multiply(*args):
    nums = list(args)
    while len(nums) > 1:
        nums[:2] = [nums[0] * nums[1]]
    return nums[0]