Создание конвертера валют в Python - PullRequest
0 голосов
/ 15 мая 2018

Создан пользовательский интерфейс, который работает нормально (не мой собственный код следовал за парнем на YouTube)
не могу заставить валюту конвертировать. продолжает говорить:

str object is not callable.

К вашему сведению, я ничего не знаю о питоне или имею какой-либо опыт. Это проект колледжа.
куда я иду не так?
заранее спасибо

DateofOrder = StringVar()
value0 = StringVar()
convert = DoubleVar()
currency = DoubleVar()


def ConCurrency():
   if value0.get() == "USA":
    convert1 = float (convert.get() * 1.52)
    convert2 = "USA Dollars", str('£.2f' '£'(convert1)) 
    currency.set(convert2)
   elif value0.get() == "Kenya":
    convert1 = float(convert.get() * 156.21)
    convert2 = "Kemyan Shilling", str('£.2f' '£'(convert1)) 
    currency.set(convert2)
   elif value0.get() == "Brazil":
    convert1 = float(convert.get() * 5.86)
    convert2 = "Brazilian Real", str('£.2f' '£'(convert1)) 
    currency.set(convert2)
   elif value0.get() == "Canada":
    convert1 = float(convert.get() * 2.03)
    convert2 = "Canadian Dollar", str('£.2f' '£'(convert1)) 
    currency.set(convert2)
   elif value0.get() == "India":
    convert1 = float(convert.get() * 101.71)
    convert2 = "Indian Rupee", str('£.2f' '£'(convert1)) 
    currency.set(convert2)
   elif value0.get() == "Phillappines":
    convert1 = float(convert.get() * 71.74)
    convert2 = "Philipine Peso", str('£.2f' '£'(convert1)) 
    currency.set(convert2)

1 Ответ

0 голосов
/ 16 мая 2018

Вы не сказали этого, но я предполагаю, что сообщение TypeError: 'str' object is not callable появляется в этой строке:

convert2 = "USA Dollars", str('£.2f' '£'(convert1)) 

(или одно из нескольких, похожих на это).Чтобы избавиться от ошибки, исправьте оператор присваивания:

convert2 = "USA Dollars", str('£%.2f' % convert1)

или лучше, поскольку он проще и эквивалентнее:

convert2 = "USA Dollars", '£%.2f' % convert1

В результате convert2 будет выглядеть примерно так:this:

('USA Dollars', '£1.33')

Проблема в том, что currency - это Tkinter DoubleVar, и его метод set не ожидает кортеж из двух строк: он ожидает float, что-то вроде 1.33(число, без кавычек и знака GBP).Так что исправление задания просто переместит вашу проблему.

Могу ли я предложить вам начать с базовой логики конвертации валют, работающей сначала в простой, но недружественной, консольной программе, и рассматривать реализацию Tkinter как этап 2?

...