Python Forum

Full Version: Adding items in a list (using loops?)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

Sorry if this is a dumb question, but I am only a week into coding. I have a list that is comprised of integers. I would like to add these all together, but I can't seem to do it correctly.

broken_prices = [5, 3, 4, 5, 4] + [4]

def sum_list(broken_pieces):
    sum = 0
    for x in broken_pieces:
        sum += x
    return sum
Basically, I am trying to write code that will return the total of the numbers in the list, which would be 25.

Thanks in advance
Your function is working but you need to call it with your list to get a result.
And beware not to name a variable "sum" as this is an inbuild python function
actually the one that does what you rebuild.

def sum_list(elements):
    total = 0
    for element in elements:
        total += element
    return total

broken_prices = [5, 3, 4, 5, 4] + [4]

print(sum_list(broken_prices))

# ==> 25

print(sum(broken_prices))
There is built-in function sum:

>>> sum([5, 3, 4, 5, 4])                                                                   
21
>>> sum([5, 3, 4, 5, 4] + [4])                                                             
25
And I concur with ThomasL - don't use built-in function names.
(Nov-21-2019, 11:46 AM)Seneca260 Wrote: [ -> ]broken_prices = [5, 3, 4, 5, 4] + [4]

def sum_list(broken_pieces):
    sum = 0
    for x in broken_pieces:
        sum += x
    return sum
Basically, I am trying to write code that will return the total of the numbers in the list, which would be 25.

Hi!

You have to be very careful with the words and punctuation signs in Python (I guess in all programming languages). So your list named broken_prices is NOT the same as your broken_pieces.

As others have said, you cannot use special words in python as names for variables. These special words appear in a different colour (like print, def, for, sum). You could use nevertheless sum1 instead of sum for the name of a variable (the colour will change as soon as you add the 1 to the name).

I have tried to follow your original program, making some necessary adjustments to show you clearly what is happening:
broken_prices = [5, 3, 4, 5, 4] + [4]
print(f"This is the list: {broken_prices}.")
def sum_list(list1):
    sum1 = 0
    for x in list1:
        sum1 += x
    print(f"The total sum of the elements of the list is {sum1}.")

sum_list(broken_prices)
and now it produces the following output:
Output:
This is the list: [5, 3, 4, 5, 4, 4]. The total sum of the elements of the list is 25. >>>
All the best,
This is under 'General Coding Help' so one should focus on 'best practices' not to obscure ways to achieve desired result Wall

Things would be different if we had this thread under 'Homework'..... Wink
In addition to @perfingo's comment - OP wants their function to return, not print the result
(Nov-21-2019, 12:08 PM)ThomasL Wrote: [ -> ]Your function is working but you need to call it with your list to get a result.
And beware not to name a variable "sum" as this is an inbuild python function
actually the one that does what you rebuild.

def sum_list(elements):
    total = 0
    for element in elements:
        total += element
    return total

broken_prices = [5, 3, 4, 5, 4] + [4]

print(sum_list(broken_prices))

# ==> 25

print(sum(broken_prices))

Thank you ThomasL and Auggie. This is exactly what I was trying to do! I find the element aspect of things a bit confusing, so I appreciate the help.

Thanks to everyone else who gave input. Sorry if I misplaced this. I wasn't sure if this should go in 'Homework' since this wasn't really homework, but rather something I was just trying to do on my own with code I used elsewhere.