我在def
中定义了一个Entry
,然后在简单的数学函数中使用它。当我在Entry
中键入数字时,它表示名称(of Entry
)未定义
我对编程非常陌生,这是一个学校项目。在这个项目中,我试图制作价值计算器
marka1=float(marka.get())*1*3.79
NameError: name 'marka' is not defined
代码:
from tkinter import*
prozor1=Tk()
prozor1.title('Python')
prozor1.geometry('500x500')
prozor1.config(bg= 'yellow')
natpis1=Label(prozor1, text='Konverter valuta')
natpis1.place(x=200, y=50)
natpis1.config(font=36)
natpis1.config(bg='silver')
natpis1.config(fg='black')
suma1=Entry(prozor1, width=19)
suma1.place(x=200,y=100)
mb=Menubutton(prozor1, text='Valuta')
mb.place(x=27, y=100)
mb.menu=Menu(mb)
mb.config(bg='grey')
mb['menu']=mb.menu
def km1():
marka1=float(marka.get())*1*3.79
rezu3=Label(prozor1, text='KN='+str(marka1))
rezu3.place(x=200, y=170)
rezu3.config(bg='silver')
def KM1():
frk=Button(prozor1, text='Pretvori',width=15, command=km1)
frk.place(x=200,y=130)
frk.config(bg='silver')
natpis1=Label(prozor1, text='Unesi sumu u KM')
natpis1.place(x=90, y=100)
natpis1.config(bg='silver')
marka=Entry(prozor1, width=19)
marka.place(x=200,y=100)
mb.menu.add_command(label='KM-KN', command=KM1)
这是该项目的一个重要部分
在您的情况下
marka
需要传递到函数中。为了做到这一点,您需要在代码的前面创建变量。以下是对我有效的方法:(同样,这也带来了表单验证的另一个问题,this might help)
在python中有一种叫做local and global变量的东西。您在函数中定义了
marka
,因此代码的其余部分无法看到它。在def KM1
的开头,需要插入一行,如下所示:使变量成为全局变量,并且您的整个代码都可以看到它
相关问题 更多 >
编程相关推荐