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

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

22.09.2020, 16:07. Показов 30155. Ответов 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
 Аватар для Рыжий Лис
5973 / 3735 / 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
 Аватар для Рыжий Лис
5973 / 3735 / 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
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
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
 Аватар для Рыжий Лис
5973 / 3735 / 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
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
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
 Аватар для Рыжий Лис
5973 / 3735 / 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
 Аватар для Рыжий Лис
5973 / 3735 / 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
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
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
 Аватар для Рыжий Лис
5973 / 3735 / 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
 Аватар для Рыжий Лис
5973 / 3735 / 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
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru