С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/140: Рейтинг темы: голосов - 140, средняя оценка - 4.64
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13

Как сложить числа в строке?

22.09.2020, 16:07. Показов 29918. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Как сложить числа в строке: "Informatics: 40(л) 12(пр) 20(лаб)"?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.09.2020, 16:07
Ответы с готовыми решениями:

Сложить числа в строке
Подскажите как сложить числа в строке. Например есть строка: char string1= as3f6j9fg77; ответ должен быть 3+6+9+7+7=32

Нужно сложить 2 числа в строке
которе есть строки типа, 34+56 ,34-12 , 67*5 и тп, нужно в общем выполнить математически действия и результат также сохранить в...

Сложить 2 числа заданных в строке
Вот они string a="100101,011" и string b="10101,110" Подскажите как это реализовать, ответ должен быть вещественным...

19
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.09.2020, 16:13
Регулярки можно использовать?
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
22.09.2020, 16:19  [ТС]
Нет.
Но, и регулярки тоже подойдут.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.09.2020, 16:25
Без регулярок как-то хитро разбивай строку по скобке и потом каждую подстроку смотри число в конце
Python
1
2
>>> "Informatics: 40(л) 12(пр) 20(лаб)".split('(')
['Informatics: 40', 'л) 12', 'пр) 20', 'лаб)']
Регулярка
Python
1
2
3
4
5
>>> re.findall(r'\d+', "Informatics: 40(л) 12(пр) 20(лаб)")
['40', '12', '20']
>>> ls = re.findall(r'\d+', "Informatics: 40(л) 12(пр) 20(лаб)")
>>> sum(map(int, ls))
72
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
22.09.2020, 16:29  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Без регулярок как-то хитро разбивай строку по скобке и потом каждую подстроку смотри число в конце
PythonВыделить код
1
2
>>> "Informatics: 40(л) 12(пр) 20(лаб)".split('(')
['Informatics: 40', 'л) 12', 'пр) 20', 'лаб)']
Так уже сделано.

Можно подробнее: "потом каждую подстроку смотри число в конце", как это сделать?
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
22.09.2020, 16:39
Python
1
2
3
4
5
6
7
8
9
10
_ = "Здравствуйте! Как сложить числа в строке: ""Informatics: 40(л) 12(пр) 20(лаб)?"
num = 0
sim = ''
for i in _ :
    if i.isdigit() :
        sim += i 
    elif sim != '' :
        num += int(sim)
        sim = ''
print(num)
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.09.2020, 16:39
Да это тупо
Python
1
2
3
4
5
6
s = 0
for i in "Informatics: 40(л) 12(пр) 20(лаб)".split('(')[:-1]:
    r = int(i.rsplit(' ')[1])
    print(r)
    s += r
print(s)
1
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
22.09.2020, 16:50  [ТС]
Цитата Сообщение от Gdez Посмотреть сообщение
PythonВыделить код
1
2
3
4
5
6
7
8
9
10
_ = "Здравствуйте! Как сложить числа в строке: ""Informatics: 40(л) 12(пр) 20(лаб)?"
num = 0
sim = ''
for i in _ :
    if i.isdigit() :
        sim += i
    elif sim != '' :
        num += int(sim)
        sim = ''
print(num

Результат = 0.
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
22.09.2020, 16:53
Неа
72

Добавлено через 1 минуту
Выдели в коде что нибудь и вверху справа нажми "выделить код"
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
22.09.2020, 17:49  [ТС]
Цитата Сообщение от Gdez Посмотреть сообщение
Неа
72
Возможно, но все равно - спасибо!

Добавлено через 15 минут
Рыжий Лис, а вот с такой строкой: "Fizra: - 30(пр) -" почему-то не хочет работать.

Python
1
2
3
4
5
6
s = 0
for i in "Fizra: - 30(пр) -)".split('(')[:-1]:
    r = int(i.rsplit(' ')[1])
    print(r)
    s += r
print(s)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.09.2020, 17:51
Python
1
i.rsplit(' ', 1)
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
22.09.2020, 17:55  [ТС]
Python
1
i.rsplit(' ', 1)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.09.2020, 18:00
[1] потерял
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
22.09.2020, 18:06  [ТС]
Python
1
2
3
4
5
6
s = 0
for i in "Fizra: - 30(пр) -)".split('(')[:-1]:
    r = int(i.rsplit(' '), [1])
    print(r)
    s += r
print(s)
TypeError: 'list' object cannot be interpreted as an integer

Добавлено через 1 минуту
Python
1
2
3
4
5
6
s = 0
for i in "Fizra: - 30(пр) -)".split('(')[:-1]:
    r = int(i.rsplit(' ')[1])
    print(r)
    s += r
print(s)
ValueError: invalid literal for int() with base 10: '-'
0
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,294
22.09.2020, 18:08
Цитата Сообщение от SW Developer Посмотреть сообщение
а вот с такой строкой: "Fizra: - 30(пр) -" почему-то не хочет работать
это совсем другие данные. вы же спокойно режете ножом масло но не сможете отрезать кусок металлической трубы, хотя в руках у вас тот же нож. так и в программировании. для других входных данных должен быть совсем другой участок кода.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def filter_num(str_):
        number = ''.join([i for i in str_ if i.isdigit()])
        if number:
                return int(number)
        return 0
 
def sum_el(data):
        return sum([filter_num(str_) for str_ in data.split()])
 
 
data = 'Informatics: 40(л) 12(пр) 20(лаб)'
data_2 = "Fizra: - 30(пр) -"
data_3 = 'Informatics: 40(л) 12(пр) 20(лаб) Fizra: - 30(пр) -'
 
print(sum_el(data))
print(sum_el(data_2))
print(sum_el(data_3))
Python
1
2
3
4
72
30
102
>>>
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.09.2020, 18:13
Лучший ответ Сообщение было отмечено SW Developer как решение

Решение

SW Developer, ты издеваешься?
Python
1
2
3
4
5
6
s = 0
for i in "Fizra: - 30(пр) -)".split('(')[:-1]:
    r = int(i.rsplit(' ', 1)[1])
    print(r)
    s += r
print(s)
Добавлено через 1 минуту
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
для других входных данных должен быть совсем другой участок кода.
Ничего не знаю, у меня работает. Хотя повторюсь: это тупо.
0
22.09.2020, 18:13

Не по теме:

Может тролит)))

0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
22.09.2020, 18:14  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
это совсем другие данные. вы же спокойно режете ножом масло но не сможете отрезать кусок металлической трубы, хотя в руках у вас тот же нож. так и в программировании. для других входных данных должен быть совсем другой участок кода.
Странно, я думал, это один тип данных - string. И встроенные методы работают одинаково, независимо, что прописано в строке.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.09.2020, 18:17

Не по теме:

Вряд ли, просто код не понимает.



Добавлено через 1 минуту
Цитата Сообщение от SW Developer Посмотреть сообщение
И встроенные методы работают одинаково, независимо, что прописано в строке.
Сравни
Python
1
2
3
4
>>> 'Fizra: - 30'.rsplit(' ')
['Fizra:', '-', '30']
>>> 'Informatics: 40'.rsplit(' ')
['Informatics:', '40']
Добавлено через 52 секунды
Где 2 кусочка, а где три. Чтобы всегда было два, добавим ещё один аргумент
Python
1
2
3
4
>>> 'Fizra: - 30'.rsplit(' ', 1)
['Fizra: -', '30']
>>> 'Fizra: - 30'.rsplit(' ', 1)[1]
'30'
1
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
22.09.2020, 18:19  [ТС]
Python
1
r = int(i.rsplit(' ', 1)[1])
Вот теперь работает! Спасибо!

Добавлено через 1 минуту
Если бы я его понимал (код), то с такими "тупыми" вопросами не обращался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.09.2020, 18:19
Помогаю со студенческими работами здесь

Сложить числа, вводимые в командной строке
Очень нужна программа на Си, которая будет складывать числа, вводимые в командной строке. Заранее спасибо.

Считать несколько строк из файла зная их количество и сложить числа в каждой строке
Дан файл input.txt, в нем: 5 //количетво строк 1 2 3 4 5// строка 1 и так далее... 1 2 3 10 2 3 1 80 8 3 3 3 3 Нужно считать...

Как сложить числа в двух половинах одного числа?
Добрый день. Подскажите, пожалуйста, как сложить числа в двух половинах данного числа? Например, есть число 11112222, если поделить число...

Как сложить числа, не используя + и -
Задача найти сумму чисел не используя операторы =, -, +=, -= умножение, сложение не запрещено. 1) Можно побитовыми операциями (но я не...

Как сложить два числа?
Задание - сложение содержимых трех именованных ячеек памяти М1, М2 и МЗ. Ругается на строчку add , . Как складывать такие ячейки и так ли...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru