Найти - Пользователи
Полная версия: Python. Kivy. Калькулятор. eval()
Начало » Python для новичков » Python. Kivy. Калькулятор. eval()
1
makson29977
 Button:
			text: '='	
			on_press: self.lbl.text = str(eval(self.lbl.text)) 
 Button:
			text: '^'	
			on_press: label.text += '**'
В калькуляторе отображается “**”(показано на фото), что вполне логично. Как сделать так, чтобы отображалось “^”, но в eval() шло “**” ?
PEHDOM
makson29977
Как сделать так, чтобы отображалось “^”, но в eval() шло “**”
разделить математику и оторисовку и заменять на “**” на “^” при оторисовке.
makson29977
PEHDOM
Предлагаешь вместо eval() прописать каждый оператор?
Можешь пример одного оператора показать пожалуйста, а то я покушал вкусно и мозг плохо работает
PEHDOM
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
>>>
makson29977
Красным обведен код, который я добавил. Все работает!!!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB