[Tutor] Trouble with SUM()

Cameron Simpson cs at cskk.id.au
Sat Apr 20 18:27:12 EDT 2019


On 20Apr2019 16:51, Ju Bo <justinthetransporter at gmail.com> wrote:
>Hi, I'm trying to write a program that uses a while loop to ask a user for
>multiple values then use the program to add all the values, however many
>there may be, then print the sum.  I'm having trouble with the sum()
>function.  My code is below:
>
>con = "y"
>
>while con == "y":
>
>        AMT = float(input("What is the price of the item? $"))
>        con = input("Would you like to continue? [y/n]")
>        price = float(sum(AMT + AMT))

We generally would also like to see the output of a run and your 
explaination of what is wrong with that output, compared to the output 
you wanted.

However, there's an obvious problem in your code above: the value of 
price is computed entirely from the latest amount, with no reference to 
any previous amounts.

Also, sum() does not take a single numeric vlue, it takes an iterable, 
such as a list.

I suspect what you want to do is append AMT values to a list which is 
set up as an empty list before the loop.
Then _after_ the loop, use sum() to add up all the number in the list 
and print that.

For your reference, here is help(sum):

  sum(iterable, start=0, /)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers

    When the iterable is empty, return the start value.
    This function is intended specifically for use with numeric values and
    may reject non-numeric types.

Cheers,
Cameron Simpson <cs at cskk.id.au>


More information about the Tutor mailing list