Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 16.12.2017
Сообщений: 48

Найти сумму чисел, разделённых запятыми

31.05.2024, 09:39. Показов 3499. Ответов 26

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть вопрос по программе.
Нужно посчитать сумму чисел, разделённых запятыми.
Вот попытки написать код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
line = '12,34,56'
str_list = line.split()
 
 def str_to_num(str):
     str = str.strip()
     if '.' in str and str.replace(',').isdigit():
         return float(str)
     elif str.isdigit():
         return int(str)
 
 num_list = []
 for i in str_list:
     n = str_to_num(i)
     if i is not None:
         num_list.append(str_to_num())
 
 s = sum(num_list)
 print(s)
А на выходе такая ошибка:

Traceback (most recent call last):
File "C:\Users\Yarior\PycharmProjects\Най ти сумму чисел, разделенных запятыми\main.py", line 15, in <module>
num_list.append(str_to_num())
TypeError: str_to_num() missing 1 required positional argument: 'str'
Подскажите в чём ошибка.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2024, 09:39
Ответы с готовыми решениями:

Создайте строку из 10 фамилий студентов Вашей группы, разделенных запятыми
Всех приветствую, помогите пожалуйста решить данную задачу) Создайте строку из 10 фамилий студентов Вашей группы, разделенных запятыми. ...

Список фамилий, разделенных запятыми, задан в файле input.txt в произвольном порядке. Упорядочить его по алфавиту
Список фамилий, разделенных запятыми, задан в файле input.txt в произвольном порядке. Упорядочить его по алфавиту, записать в файл...

В edit1 находится массив целых чисел разделенных запятыми. Найти ширину этого массива
В edit1 находится массив целых чисел разделенных запятыми. Найти ширину этого массива, т.е |x max - x min|

26
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38226 / 21158 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
02.06.2024, 06:34
Студворк — интернет-сервис помощи студентам
YuS_2, если корежить исходные данные, то... ну попробуйте в своем коде поставить две запятых вместо одной
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.06.2024, 08:31

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import regex as re
from unicodedata import numeric
 
 
def str_to_int(s):
    res = 0
    for i in s:
        if res:
            res *= 10
        res += numeric(i)
    return res
 
 
line = '123, ²³,⁴⁵,,,,,,⁶⁷,⁸,⁹⁹'
print(sum(map(str_to_int, re.findall(r'\p{N}+', line))))
3
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
02.06.2024, 09:41
Цитата Сообщение от Catstail Посмотреть сообщение
если корежить исходные данные, то... ну попробуйте в своем коде поставить две запятых вместо одной
Да не про то речь... мой-то код, благодаря int(), завалится на любой нецифре или нестандартной цифре юникода, запятые и не понадобятся.
Я о том, что:
Цитата Сообщение от YuS_2 Посмотреть сообщение
описанный метод получения чисел из текста, всё же, не прямой путь.
и:
Цитата Сообщение от YuS_2 Посмотреть сообщение
здесь используется "случайное" совпадение последовательного расположения этих кодов, но его могло и не быть, поэтому это хак
ну и как следствие, возвращаясь к тому, что:
Цитата Сообщение от YuS_2 Посмотреть сообщение
то и ord() надо бы реализовать
для большей универсальности... при этом, конечно, понимая, что идеал не достижим...

Цитата Сообщение от iSmokeJC Посмотреть сообщение
re.findall
Вот и регулярки подоспели! Рок-н-ролл!
Но уже regex реализовывать не будем...

PS
Собрал в кучу все варианты (минимум корректировок, для работоспособности):
4 варианта
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import regex as re
from unicodedata import numeric as num
 
line = '123, ²³,⁴⁵,,,,,,⁶⁷,⁸,⁹⁹'
#nil = '0'
nil = '⁰'
#nil = '₀'
 
#=====
a,arr = '',[]
for x in line:
    if x == ',' and len(a) > 0:
        arr.append(int(a))
        a = ''
    elif x.isdigit():
        a += str(int(num(x)))
arr.append(int(a))
print(arr, sum(arr))
 
#=====
buf = []
summ = 0
for i in line:
    if i == ',' and len(buf)>0:
        summ += int(''.join(buf))
        buf.clear()
    elif i.isdigit():
        buf.append(str(int(num(i))))
summ += int(''.join(buf))
print(summ)
 
#=====
a=[]
acc=0
flg=False
for s in line:
    if s==',':
        if flg:
            a.append(acc)
        acc=0
        flg=False
    elif s.isdigit():
        acc=acc*10+ord(s)-ord(nil)
        flg=True
if flg:
    a.append(acc)
    
print(a,sum(a))
 
#=====
def str_to_int(s):
    res = 0
    for i in s:
        if res:
            res *= 10
        res += int(num(i))
    return res
print(sum(map(str_to_int, re.findall(r'\p{N}+', line))))
2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.06.2024, 09:43
YuS_2, оформляй в либу, и на PyPI ее!
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
02.06.2024, 09:49
Цитата Сообщение от iSmokeJC Посмотреть сообщение
на PyPI ее!
это коллективный труд...

Добавлено через 2 минуты
да и корректный ord() для варианта №3, пока не реализован
0
0 / 0 / 0
Регистрация: 16.12.2017
Сообщений: 48
05.06.2024, 19:16  [ТС]
CatStail, здравствуйте.
В вашем коде выдаёт.
"23,45,67,8,99"
Сумму не выдаёт.

Добавлено через 4 минуты
Yus 2, здравствуйте.
Ваш код выдаёт такое.
Traceback (most recent call last):
File "C:\Users\Yarior\PycharmProjects\Най ти сумму чисел, разделенных запятыми_1\main.py", line 7, in <module>
arr.append(int(a))
ValueError: invalid literal for int() with base 10: ',12'

Добавлено через 4 минуты
Рыжий Лис, Здравствуйте.
У вас максимально близко к ответу, но считает только крайние.
Т.е в моем примере "12,34,56" считает только "12,34".
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
05.06.2024, 19:25
Цитата Сообщение от Яриор Корсаинес Посмотреть сообщение
Сумму не выдаёт.
ну, так добавьте функцию суммирования...

Цитата Сообщение от Яриор Корсаинес Посмотреть сообщение
Ваш код выдаёт такое.
Вы самостоятельно в питоне ничего не умеете делать?
измените код на такой:
Python
1
2
3
4
5
6
7
8
9
10
11
12
from unicodedata import numeric as num
line = '123, ²³,⁴⁵,,,,,,⁶⁷,⁸,⁹⁹,1①,⒐⓷'
a,arr = '',[]
 
for x in line:
    if x == ',' and len(a) > 0:
        arr.append(int(a))
        a = ''
    elif x.isdigit():
        a += str(int(num(x)))
if len(a)>0:arr.append(int(a))
print(arr, sum(arr))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2024, 19:25

Считать двумерный массив чисел, разделенных запятыми, из файла
Дан файл типа: 50, 3, 384, 0, 32 40, 28, 44, 3, 75 405, 82, 95, 24, 93 Как считать из него числа в двумерный массив? Думал, что...

Чтение чисел с плавающей точкой из файла, разделенных запятыми в переменные
Здравствуйте! У меня есть файл &quot;file.dat&quot; вида 2 82.7957421541214,55.0893564395402 82.7997922897339,55.0893564395402 ...

Найти в файле, содержимое которого состоит из слов, разделенных запятыми, найти определенное слово
Такой вот вопрос, открываю файл и вывожу содержимое в Memo с помощью Memo1-&gt;Lines-&gt;LoadFromFile(&quot; *.txt &quot;); Как найти в...

В строке, разделенных пробелами, запятыми, точками, найти 5 самых длинных слов
Задание: Дана строка слов, разделенных пробелами, запятыми и точками. Сформируйте новую строку из пяти самых длинных слов. Определите...

Массив: Найти их сумму и сумму чисел, разделенных на 2, сравнить эти суммы между собой.
Нужно написать программу используя одномерные массивы. Буду благодарен. Есть действительные числа X1, ..., X15. Найти их сумму и сумму...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru