python3 ошибка с replace

Я создал голосового помощника. Когда я спрашиваю, сколько будет 5 умножить на 5, выводится ошибка:

 print(f"ассистент: результат - {eval(text.replace('x','*'))}")   File "<string>", line 1
5 х 5
  ^ SyntaxError: invalid syntax

Вот часть кода:

lst = list(query) # принимает слова в массив
l = lst[14::] # берёт срез от "сколько будет"
text = ""
for i in range(len(l)):
    text += l[i]
        
print(f"Ассистент: Результат - {eval(text.replace('x','*'))}")

я пытался использовать replace но это не помогает


Ответы (1 шт):

Автор решения: Nikolai_Narushev

Скорее всего в тексте у вас "x" русской раскладки, а в replace "x" английской, поэтому и ошибка

Это связано в различии кодовом обозначении "x" в русской раскладке и английской, это связано с использованием разных стандартов кодирования (ASCII для английского и Unicode для многих языков, включая русский) и соответствующими кодами символов для буквы "x" в каждом из этих стандартов.

Используйте модуль "re"

import re

lst = list(query) 
l = lst[14::] 
text = "".join(l) 


text = re.sub(r'х', '*', text, flags=re.IGNORECASE)

result = eval(text)

print(f"ассистент: результат - {result}")
→ Ссылка