Posts: 6
Threads: 3
Joined: Nov 2019
Nov-21-2019, 11:46 AM
(This post was last modified: Nov-21-2019, 11:46 AM by Seneca260.)
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
Posts: 360
Threads: 5
Joined: Jun 2019
Nov-21-2019, 12:08 PM
(This post was last modified: Nov-21-2019, 12:09 PM by ThomasL.)
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))
Posts: 1,950
Threads: 8
Joined: Jun 2018
Nov-21-2019, 12:10 PM
(This post was last modified: Nov-21-2019, 12:10 PM by perfringo.)
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.
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy
Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Posts: 212
Threads: 25
Joined: Aug 2019
(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,
newbieAuggie2019
"That's been one of my mantras - focus and simplicity. Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move mountains."
Steve Jobs
Posts: 1,950
Threads: 8
Joined: Jun 2018
This is under 'General Coding Help' so one should focus on 'best practices' not to obscure ways to achieve desired result
Things would be different if we had this thread under 'Homework'.....
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy
Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Posts: 8,160
Threads: 160
Joined: Sep 2016
In addition to @perfingo's comment - OP wants their function to return, not print the result
Posts: 6
Threads: 3
Joined: Nov 2019
(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.
|