创建了工作正常的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)
答案 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阶段吗?