简体   繁体   中英

How do I separate the numbers from an input in order to add them?

I am trying to have the user input a series of numbers (separated by commas) to receive the total of them.

I have tried (with no luck):

values = input("Input some comma seprated numbers: ")
numbersSum = sum(values)
print ("sum of list element is : ", numbersSum)

values = input("Input some comma seprated numbers: ")
list = values.split(",")
sum(list)
print ("The total sum is: ", sum)

If the user inputs 5.5,6,5.5 the expected output will be 17.

You're almost there.

After splitting, the values will still be strings, so you have to map them to float.

values = "5.5,6,5.5" # input("Input some comma seprated numbers: ")
L = list(map(float, values.split(",")))
print ("The total sum is: ", sum(L))

Output:

The total sum is:  17.0

Side note: Please don't name your variables list or sum , otherwise you will shadow the python built-ins!

After you split the values by comma into a list, you need to convert them from strings to numbers. You can do that with

values = input("Input some comma seprated numbers: ")
lst = values.split(",")
lst = [float(x) for x in lst]
total = sum(lst)
print("The total sum is: ", total)

For reference, see List Comprehensions in Python .

(Also, you shouldn't use list as a variable name, since that's a function in Python.)

You have to convert the inputs to float:

numbers = input("Input some comma seprated numbers: ")

result = sum([float(n) for n in numbers.split(',')])

print(result)

You have to convert to numbers before adding them together.

For example, you could convert them all into float s:

input_str = input("Input some comma seprated numbers: ")

# Option1: without error checking
number_list = [float(s) for s in input_str.split(',')]

# Option2: with error checking, if you are not sure if the user will input only valid numbers
number_list = []
for s in input_str.split(','):
    try:
        n = float(s)
        number_list.append(n)
    except ValueError:
        pass

print("The list of valid numbers is:", number_list)
print("The sum of the list is:", sum(number_list))

It's hard to know what went wrong w\\oa sample of the error\\output code.

I think the issue is in getting the sum of list (very bad name btw) when it's a list of strings.

please try the following

values = input("Input some comma seprated numbers: ")
lst = values.split(",")
lst = [int(curr) for curr in lst]
sum(lst)
print ("The total sum is: ", sum)

This code will work when expecting integers, if you want floats then change the list comprehension.

Try not to name objects with the same name of standard objects such as list,int,str,float etc...

# empty list to store the user inputs
lst = []      

# a loop that will keep taking input until the user wants
while True:
    # ask for the input
    value = input("Input a number: ")
    # append the value to the list
    lst.append(value)
    # if the user wants to exit
    IsExit = input("enter exit to exit")
    if 'exit' in IsExit:
        break

# take the sum of each element (casted to float) in the lst 
print("The sum of the list: {} ".format(sum([float(x) for x in lst])))

OUTPUT:

Input a number: 5.5
enter exit to exitno
Input a number: 6
enter exit to exitno
Input a number: 5.5
enter exit to exitexit
The sum of the list: 17.0 

在下面使用

print('sum of input is :',sum(list(map(float,input('Input some comma separated numbers: ').split(',')))))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM