在Python中创建货币转换器

时间:2018-05-15 19:45:01

标签: python tkinter calculator currency

创建了工作正常的UI(不是我自己的代码跟随youtube上的人)
似乎无法让货币转换。一直说:

str object is not callable.

仅供参考,我对python一无所知或有任何经验。这是一个大学项目 我哪里错了?
提前谢谢

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 :(得分:0)

你没有这么说,但我猜这条消息TypeError: 'str' object is not callable出现在这一行:

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

(或其中一个看起来像它)。要消除错误,请修复您的赋值语句:

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

或更好,因为它更简单和等效:

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

这会导致convert2看起来像这样:

('USA Dollars', '£1.33')

问题是currency是一个Tkinter DoubleVar,它的set方法不期望两个字符串的元组:它期待一个浮点数,类似于{ {1}}(一个数字,没有引号和GBP符号)。因此,修复任务只会解决您的问题。

我可以建议您首先让基本的货币转换逻辑在一个简单的,如果不友好的控制台程序中工作,并将Tkinter实现视为第2阶段吗?