Уведомления

Группа в Telegram: @pythonsu

#1 Май 9, 2019 11:01:20

makson29977
Зарегистрирован: 2019-05-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Python. Kivy. Калькулятор. eval()

 Button:
			text: '='	
			on_press: self.lbl.text = str(eval(self.lbl.text)) 
 Button:
			text: '^'	
			on_press: label.text += '**'
В калькуляторе отображается “**”(показано на фото), что вполне логично. Как сделать так, чтобы отображалось “^”, но в eval() шло “**” ?

Прикреплённый файлы:
attachment Сни3мок.PNG (26,0 KБ)

Офлайн

#2 Май 11, 2019 17:49:29

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Python. Kivy. Калькулятор. eval()

makson29977
Как сделать так, чтобы отображалось “^”, но в eval() шло “**”
разделить математику и оторисовку и заменять на “**” на “^” при оторисовке.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Май 11, 2019 21:13:29

makson29977
Зарегистрирован: 2019-05-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Python. Kivy. Калькулятор. eval()

PEHDOM
Предлагаешь вместо eval() прописать каждый оператор?
Можешь пример одного оператора показать пожалуйста, а то я покушал вкусно и мозг плохо работает

Офлайн

#4 Май 12, 2019 00:51:46

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Python. Kivy. Калькулятор. 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
>>>



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Май 12, 2019 00:52:43)

Офлайн

#5 Май 12, 2019 10:54:37

makson29977
Зарегистрирован: 2019-05-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Python. Kivy. Калькулятор. eval()

Красным обведен код, который я добавил. Все работает!!!

Прикреплённый файлы:
attachment Ответ.PNG (22,6 KБ)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version