Задать вопрос
@fantom0005

Как заменить субстроку в Python, сохраняя часть этой строки?

Суть вопроса такая, нужно в входной строке типа
string = "cos(90) + cos(170) + sin( 80)" #могут быть и другие математические функции

сделать такие изменения:
out_string = "cos(degres(90)) +  cos(degres(170)) + sin(degres( 80))"

я написал такую регулярку:
(cos *\( *(?P<degres>[\d]+) *\))
как мне ей заменить косинусы, а цифры оставить?
и ещ вопрос: как сделать чтоб она меняла еще и синусы, и тангенсы?
  • Вопрос задан
  • 225 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
@nirvimel
import re
string = "(cos(0) + sin(180)) * tan(45.0) + not_a_tan(1)"
print re.sub(r'\b(cos|sin|tan)\s*\(\s*(\d+(?:\.\d+)?)\s*\)', r'\1(degres(\2))', string)

Корректно обрабатывает целые и дробные числа.
Не реагирует на другие функции, заканчивающиеся на cos, sin или tan.
Заодно подправляет расстановку пробелов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы