Şu hatayı veriyor. “NameError: name ‘komut’ is not defined” Yardımlarınız için şimdiden teşekkürler.
from tkinter import *
def fonksiyon():
komut = kutu.get()
print ("Buttona basıldı. Kutudaki giriş : ")
exec ("a = +komut")
yazı2.config(text =str(a))
pencere = Tk()
pencere.title("pencere")
yazı = Label(pencere)
yazı.config(text = "HOŞ GELDİNİZ")
yazı.pack()
yazı2 = Label(pencere)
yazı2.config(text = "HENÜZ HİÇ İŞLEM YAPILMADI")
yazı2.pack()
kutu = Entry(pencere)
kutu.pack()
button = Button(pencere)
button.config(text = "HESAPLA", command = fonksiyon)
button.pack()
mainloop()
Sanırım fonksiyon isimli fonksiyonda girintileme yanlışlığı var
def fonksiyon():
komut = kutu.get()
print ("Buttona basıldı. Kutudaki giriş : ")
exec ("a = +komut")
yazı2.config(text =str(a))
not: alttaki düzeltmeye ek olarak, a is not defined hatası da verecektir. a değişkenine ulaşmak için eval(“a”) kullanabilirsin.
1 Beğeni
Ayrıca yapılmak istenen şey de koda aktarılamamış.
exec ("a = +komut")
Kısmı anlamsız duruyor. Hatta verilen hatanın sebebi de bu olabilir. Sanırım şu yapılmalı:
exec ("a =" + komut)
1 Beğeni
exec
fonkiyonunu başka bir fonksiyon içinde kullanırken dikkatli olmalısınız.
>>> def a(text):
exec("b="+text)
print(b)
>>> a("1")
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
a("1")
File "<pyshell#3>", line 3, in a
print(b)
NameError: name 'b' is not defined
Bu şekilde kullanmanız lazım:
def a(text):
exec("b="+text,locals(),globals())
print(b)
Tekrar merhaba. Şöyle birşey denedim, hata vermedi ama yine çalışmıyor. Sanırım mantığını tam otutturamadım. 
from tkinter import *
kutu1 = input('1. Sayı : ')
kutu2 = input('2. Sayı : ')
ortalama=(int(sayi1)+int(sayi2))/2
print("Ortalama :{0} ".format(ortalama))
pencere = Tk()
pencere.title("pencere")
yazı = Label(pencere)
yazı.config(text = "SONUÇ BURDA GÖZÜKMESİ LAZIMDI :(")
yazı.pack()
kutu1 = Entry(pencere)
kutu1.pack()
kutu2 = Entry(pencere)
kutu2.pack()
button = Button(pencere)
button.config(text = "HESAPLA", command = ortalama)
button.pack()
mainloop()
Hata vermediğine emin misiniz?
kutu1 = input('1. Sayı : ')
kutu2 = input('2. Sayı : ')
ortalama=(int(sayi1)+int(sayi2))/2
print("Ortalama :{0} ".format(ortalama))
sayi1
ve sayi2
tanımlanmamış.
from tkinter import *
def SpaceHolder(entry,text):
entry.delete(0,len(entry.get()))
entry.insert(0,text)
entry.text = text
entry.is_empty = True
entry.configure(foreground="#5d626b")
entry.bind("<FocusIn>",lambda enrty=entry: invisibleText(entry))
entry.bind("<FocusOut>",lambda enrty=entry: visibleText(entry))
def visibleText(entry):
if entry.get() == "":
entry.configure(foreground="#5d626b")
entry.insert(0,entry.text)
entry.is_empty=True
else:
entry.is_empty=False
def invisibleText(entry):
if entry.get() == entry.text and entry.is_empty == True:
entry.delete(0,len(entry.get()))
entry.configure(foreground="#000000")
def ortalama():
try:
ortalama=(int(kutu1.get())+int(kutu2.get()))/2
except:
yazı["text"] = "Geçersiz Giriş."
else:
yazı["text"] = str(ortalama)
pencere = Tk()
pencere.geometry("160x150+500+300")
pencere.title("Pencere")
pencere.resizable(False,False)
yazı = Label(pencere)
yazı["text"] = "Henüz hesaplama yapılmadı."
yazı.pack()
kutu1 = Entry(pencere)
kutu1.pack()
kutu2 = Entry(pencere)
kutu2.pack()
Label().pack()
SpaceHolder(kutu1,"1. Sayıyı Giriniz.")
SpaceHolder(kutu2,"2. Sayıyı Giriniz.")
button = Button(pencere)
button.config(text = "Ortalama Al", command = ortalama)
button["borderwidth"] = 1
button["state"] = "active"
button.pack()
1 Beğeni