Инженерный калькулятор · Шаг 1 из 10
Токены
Человек набирает выражение как придётся: «2+3.5x», «sin( pi / 2 )», «2*10». Считать прямо по буквам строки неудобно — сначала строку режут на токены: числа, имена и знаки. Дальше калькулятор работает только с ними.
Что сделать
Разрежьте выражение на токены: числа, имена и знаки действий.
Что приходит
stroka— выражение, как его набрали
Что вернуть
Список токенов: числа — int или float, имена и знаки — строками; непонятный знак — ValueError с текстом.
Допишите функцию tokeny в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Калькулятор зовёт tokeny первым делом на каждое «=». Всё остальное — скобки, приоритет, функции — работает уже с вашим списком.
"2 + 3.5*x" — это [2, "+", 3.5, "*", "x"]: пробелы пропали, «3.5» стало дробным числом, «x» — именем.
tokeny("2 + 3.5*x")
[2, '+', 3.5, '*', 'x']
Пробелы пропускаются.
Число — подряд идущие цифры 0–9 и точки. Без точки — int, с одной точкой — float (".5" — это 0.5, "5." — 5.0). Две точки и больше — ValueError("лишняя точка в «1.2.3»") с самим куском в ёлочках. Одна точка без цифр — ValueError("одна точка — не число").
Имя — подряд идущие латинские буквы: "sin", "pi", "x".
Знаки — + - * / ^ ( ), каждый — строкой из одного знака. Два знака ** подряд — то же, что ^: так степень пишут в Python.
Любой другой знак — ValueError(f"непонятный знак «{знак}»"). Пустая строка — пустой список.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.