Функция для разделения входного выражения на единицы токена (python) - PullRequest
0 голосов
/ 09 апреля 2020
def get_token_list(expr):
    token_list_initial = expr.split(' ')
    token_list=[]
    for token in token_list_initial:
       if token in '+-/*^()':
          token_list.append(token)
       elif token == ' ':
          continue
       elif token in '0123456789':
          token=float(token)
          token=str(token)
          token_list.append(token)
    return token_list

Между оператором и операндом может быть пробел. Оба оператора и операнды должны быть возвращены в виде строк в списке. Операнд должен быть плавающим.

Например.

вход: 1+2 *3/(4+5)

выход: ['1.00', '+', '2.00', '*'......]

Я не уверен, что не так. Я был бы очень признателен, если бы вы научили меня.

1 Ответ

0 голосов
/ 09 апреля 2020

Я пытался сделать это с помощью регулярных выражений, посмотрите:

import re

input = "1+2 *3  (4+5)"
input = input.replace(' ','')

print([i for i in re.split('([^0-9])',input) if i != ''])

Надеюсь, это поможет!

...