Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 11, 2018 18:23:24

Xokare228
Зарегистрирован: 2018-10-28
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь в разделении примера

Здравствуйте, пишу извлекатель квадратных корней. Получаю строку вроде x^2-2x+15=0 нужно разделить её на отдельные числа. И вроде бы всё хорошо, используй re.split, но тогда числа будут x^2, 2x, 15, а мне надо что бы числа были x^2, -2x, 15. Как это сделать?

Отредактировано Xokare228 (Дек. 11, 2018 18:27:09)

Офлайн

#2 Дек. 12, 2018 10:57:33

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помощь в разделении примера

Xokare228
огда числа будут x^2, 2x, 15, а мне надо что бы числа были x^2, -2x, 15. Как это сделать?
Ну самый просто способ предварительно заменить все “-” на “+-”, а в split убрать “-” из шаблона.Но это работает только если в вашей входящей строке невозможны варианты типа -x^2-2x+15=0 или x^2- -2x+15=0, тогда этот подход будет выдавать результаты типа такого ('', ‘-x^2’, ‘-2x’, ‘15) или такого (’x^2', ‘-’, ‘-2x’, ‘15=0’)
поэтому вместо re.split имхо лучше использовать re.findall(), а “- -” предварительно заменять на +,
 print(re.findall('[-]*[\w|\^]+', 'x^2-2x+15=0'))
>>> 
['x^2', '-2x', '15', '0']

но дальше вылезут еще какиенить бока,



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Дек. 12, 2018 13:47:13)

Офлайн

#3 Дек. 16, 2018 20:37:10

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помощь в разделении примера

Это квадратное уравнение, оно всегда строго одинаковое. И в данном случае можно банально проверять строку на наличие плюса или минуса.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version