Как написать функцию к кнопки процента в калькуляторе?
Питон, библиотека tkinter. Никак не получается написать функцию для кнопки процента в калькуляторе. Пишу такую функцию
def procent_exp():
try:
global expression
total = eval(expression)
total = total / 100
expression = str(total)
except:
expression = ""
При запуске открывается калькулятор, пишу к примеру 50 - 5% , а процент в поле ввода не отображается, будто не нажато, нажимаю равно и выдает 0.45. Если процент нажимать несколько раз, то и в эскспоненциальной форме может выдать ответ. Что здесь не так? Почему не работает функция ?
eval вычисляет, не факт, что человек не введет очень длинное выражение 50-2-3-4
Но сейчас оно работает верно, а именно так как ты запрограммировал.
вычисляет 45, потом делит на 100 и выходит 0.45
В калькуляторах когда вводят 50 - это попадает в регистр R1, когда вводят - то попадает в RO и когда 5 то в регистр R2 и как только приходит команда % до попадания в регистр RO то происходит анализ, что есть в R1 RO R2
Для твоего случая в регистр индикатора RI должно быть записано
RI = R1 - R1*R2/100
Для операции * и % потом записалось бы так RI = R1*(R2/100)
Для операции / и % потом записалось бы так RI = R1/(R2/100)
Могут регистр индикатора RI совместить с R2, так проще конструкция, но труднее чуть для понимания человеку.
А вот работает ли eval в питоне, так же как в калькуляторе я не знаю, может и нет, так как не спец я питона, а вот как сделать в виде регистров показал.