Форум сайта python.su
0
Здравствуйте, пишу извлекатель квадратных корней. Получаю строку вроде x^2-2x+15=0 нужно разделить её на отдельные числа. И вроде бы всё хорошо, используй re.split, но тогда числа будут x^2, 2x, 15, а мне надо что бы числа были x^2, -2x, 15. Как это сделать?
Отредактировано Xokare228 (Дек. 11, 2018 18:27:09)
Офлайн
294
Xokare228Ну самый просто способ предварительно заменить все “-” на “+-”, а в split убрать “-” из шаблона.Но это работает только если в вашей входящей строке невозможны варианты типа -x^2-2x+15=0 или x^2- -2x+15=0, тогда этот подход будет выдавать результаты типа такого ('', ‘-x^2’, ‘-2x’, ‘15) или такого (’x^2', ‘-’, ‘-2x’, ‘15=0’)
огда числа будут x^2, 2x, 15, а мне надо что бы числа были x^2, -2x, 15. Как это сделать?
print(re.findall('[-]*[\w|\^]+', 'x^2-2x+15=0')) >>> ['x^2', '-2x', '15', '0']
[code python][/code]
Отредактировано PEHDOM (Дек. 12, 2018 13:47:13)
Офлайн
61
Это квадратное уравнение, оно всегда строго одинаковое. И в данном случае можно банально проверять строку на наличие плюса или минуса.
Офлайн