Button: text: '=' on_press: self.lbl.text = str(eval(self.lbl.text))
Button: text: '^' on_press: label.text += '**'
Button: text: '=' on_press: self.lbl.text = str(eval(self.lbl.text))
Button: text: '^' on_press: label.text += '**'
makson29977разделить математику и оторисовку и заменять на “**” на “^” при оторисовке.
Как сделать так, чтобы отображалось “^”, но в eval() шло “**”
PEHDOMПредлагаешь вместо eval() прописать каждый оператор?
makson29977Ну вообще использовать eval() нужно очень осторожно так что идея разбирать строку на операторы и числа вобщемто вполне себе здравая. Но в данном случае предлагаю для начала просто разделить отрисовку и математику. Для математики одна строка, дял отрисовки другая. Соотвевенно для отрисовки заменяешь “**” на “^” и выводишь (или наоборот)
Предлагаешь вместо eval() прописать каждый оператор?
in_expr = input() math_expr=in_expr.replace('^', '**') res = eval(math_expr) print('{}={}'.format(in_expr, res)) >>> 2^3 2^3=8 >>>