Ответ 1
Вы пытаетесь использовать строку как функцию:
"Your new price is: $"(float(price) * 0.1)
Поскольку между строковым литералом и скобкой (..)
нет ничего, Python интерпретирует это как инструкцию для обработки строки как вызываемой и вызывает ее с одним аргументом:
>>> "Hello World!"(42)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
Кажется, вы забыли объединиться (и назовите str()
):
easygui.msgbox("Your new price is: $" + str(float(price) * 0.1))
Следующая строка также нуждается в фиксации:
easygui.msgbox("Your new price is: $" + str(float(price) * 0.2))
В качестве альтернативы используйте форматирование строк с помощью str.format()
:
easygui.msgbox("Your new price is: ${:.2f}".format(float(price) * 0.1))
easygui.msgbox("Your new price is: ${:.2f}".format(float(price) * 0.2))
где {:02.2f}
будет заменено вашим ценовым расчетом, форматируя значение с плавающей запятой в качестве значения с двумя десятичными знаками.