[SOLVED] Create a function that calculate the sum of odd and even values of a list and store the result within a tuple

Table of Contents

Issue

I am trying to solve this function.
I have to create a tuple with the sum of the even and odd numbers of this list.
So the output should be (9,12) but my function doesn’t work.
I do have to use a function

number_list = [1, 2, 3, 4, 5, 6]

def calculate_odd_even(odd_number, even_number):
    odd_number = 0
    even_number = 0
    t1 = tuple()
    for i in number_list:
        if i % 2 == 0:
            even_number = even_number + number_list[i]
            t1.append(i)
            
        else:
            odd_number = odd_number + number_list[i]
            t1.append(i)
    
    return odd_number
    return even_number

my_tuple = calculate_odd_even(odd_number, even_number)

Solution

You need some changes in your code:

  1. No need for function arguments in this case.

    • def calculate_odd_even(odd_number, even_number):
    • +def calculate_odd_even():
  2. You iterating over the elements of list, not indices.So there is no need to use number_list[i], just i will do the
    job.

    • even_number = even_number + number_list[i]
    • odd_number = odd_number + number_list[i]
    • even_number = even_number + i
    • odd_number = odd_number + i
  3. Second retrun wont be reached ever.So instead, return a tuple.

  •      return odd_number
         retrun even_number # Wont be reached
    
  • return (odd_number, even_number) # currect way

Final code

number_list = [1, 2, 3, 4, 5, 6]

def calculate_odd_even():
    odd_number = 0
    even_number = 0
    for i in number_list:
        if i % 2 == 0:
            even_number = even_number + i
        else:
            odd_number = odd_number + i
    
    return (odd_number, even_number)

my_tuple = calculate_odd_even()
print(my_tuple) # prints (9, 12)

Answered By – AbbasEbadian

Answer Checked By – Mary Flores (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *