我是tkinter的新手。我正在尝试制作货币转换器但是当我尝试将条目转换为浮动(转换为不同的货币)时,我收到此错误。
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
return self.func(*args)
File "C:\Users\Nathan\Documents\New folder (3)\converter.py", line 40, in convert
money = float( money.get() )
ValueError: could not convert string to float:
这是我的代码: import tkinter 来自tkinter import *
root=tkinter.Tk()
root.title('Currency Converter')
root.minsize(300,300)
root.geometry('500x500')
def convert():
nw= Toplevel()
nw.title('Convert')
nw.minsize(300,300)
nw.geometry('400x400')
am= Label(nw,text='Please enter the amount of money you have')
money= Entry(nw, width=5)
ra= Label(nw, text='Please enter the exchange rate')
rate= Entry(nw,width=6)
convert= Label(nw,text='You have')
con= tkinter.Button(nw, text='Convert')
b= tkinter.Button(nw, text= str(money))
am.pack()
money.pack()
ra.pack()
rate.pack()
convert.pack()
con.pack()
b.pack()
money = float( money.get() )
welcome= Label(root,text='Welcome to Currency Converter, please select the conversion you wish to use')
pe= tkinter.Button(root, text='Pound - Euro', command=convert)
ep= tkinter.Button(root, text='Euro - Pound', command=convert)
welcome.pack()
pe.pack()
ep.pack()
root.mainloop()
答案 0 :(得分:1)
我认为解释为什么会出现此问题的最佳方法是逐步完成所发生的事情:
pe
按钮或ep
按钮。convert
函数。money = float( money.get() )
。money.get()
将返回一个空字符串。空字符串不能成为浮点数,因此抛出ValueError
。总而言之,问题是你没有添加任何安全性,如果money.get
返回一个无法转换为浮点数的字符串(即一个空字符串,一个包含字母的字符串,等等)。 )。
你可以创建一个像这样的安全:
try:
money = float(money.get())
except ValueError:
pass
或者,像这样:
money = money.get()
if money.isdigit():
money = float(money)
无论您如何选择解决此问题,都需要在money.get
的返回值无法转换为浮点数时执行某些。