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

 Refresh February 2019 Views 45 time
2

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: ")
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.

2

После того, как вам `split`эти значения через запятую в список, вам необходимо преобразовать их из строк в число. Вы можете сделать это с

``````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)
``````

Для справки см списковых в Python .

(Кроме того , не следует использовать в `list`качестве имени переменной, так как это функция в Python.)

0

Это трудно понять, что пошло не так ж \ оа образец выходного кода ошибки \.

Я думаю, что проблема заключается в получении суммы списка (очень плохое имя кстати), когда это список строк.

пожалуйста, попробуйте следующее

``````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)
``````

Этот код будет работать, когда ожидают целые, если вы хотите, поплавки то изменить список понимание.

Старайтесь не называть объекты с одинаковыми именами стандартных объектов, таких как список, межд, ул поплавок и т.д ...

1

Вы должны преобразовать входы плавать:

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

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

print(result)
``````
0
``````# empty list to store the user inputs
lst = []

# a loop that will keep taking input until the user wants
while True:
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])))
``````

ВЫХОД:

``````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
``````
4

Ты почти там.

После разделения, значения будут по-прежнему быть строками, так что вы должны сопоставить их плавать.

``````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))
``````

Выход:

``````The total sum is:  17.0
``````

Примечание стороны: Пожалуйста , не называйте переменные `list`или `sum`, в противном случае вы будете теневым питону встроенных модулей!

0

Вы должны преобразовать в число, прежде чем добавлять их вместе.

Например, вы можете преобразовать их все в `float`с:

``````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))
``````