Форум сайта python.su
Привет всем ребята нужна помощь я думаю для экспертов будет легко !
Вообщем ребят надо сделать голосовой калькулятор ! я уже все сделал голос распознование и тд (через google api ) так вот когда я говорю допустим 5 + 5 он разпознает 5 + 5 а как сделать так что бы пример перевелся в int или как-то по другому ? кто знает ? как ето решить ?
Офлайн
evgeniy2018123 в каком виде оно тебе возвращает результат?
[code python][/code]
Офлайн
Если выражения не сложные, то можно просто применять регулярные выражения для распознавания известных выражений. Если же выражения произвольные, то надо строить синтаксический анализатор со всеми прелестями - построение грамматики, рекурсивный спуск, построение дерева операций. Так что начни с простого, оно хоть порадует тебя результатом.
Офлайн
PEHDOMвид(строка) еслия я говорю : 5 + 5 ; то она выводит уже красиво в консоле 5 + 5
evgeniy2018123 в каком виде оно тебе возвращает результат?
py.user.nextСпасибо ну а можно ка който пример ? или я ща в гугле посижу
Если выражения не сложные, то можно просто применять регулярные выражения для распознавания известных выражений. Если же выражения произвольные, то надо строить синтаксический анализатор со всеми прелестями - построение грамматики, рекурсивный спуск, построение дерева операций. Так что начни с простого, оно хоть порадует тебя результатом.
Отредактировано evgeniy2018123 (Июль 31, 2018 08:17:18)
Офлайн
>>> def parse(text): ... parts = text.split() ... val1, op, val2 = int(parts[0]), parts[1], int(parts[2]) ... return (val1, val2, op) ... >>> def operate(val1, val2, op): ... if op == '+': ... return val1 + val2 ... if op == '-': ... return val1 - val2 ... if op == '*': ... return val1 * val2 ... if op == '/': ... if val2 != 0: ... return val1 / val2 ... raise ValueError('zero in denominator') ... >>> operate(*parse('5 + 10')) 15 >>> operate(*parse('5 * 10')) 50 >>>
Отредактировано py.user.next (Июль 31, 2018 11:27:52)
Офлайн
py.user.nextСпасибо попробую!!
Офлайн
Пишите на почту, готов все обьяснить
Офлайн