Arkadaşlar Merhaba öncelikle sitede aranıza yeni katıldım.Şu ara okulum için üzerinde çalıştığım bi form uygulamam var ve bazı sorunlar yaşıyorum ve sizden destek alabileceğimi düşündüm.
Uygulamamda Tkinter ile bi form oluşturdum.Bu form üzerinde butonlar var.Butonlara tıklandığında tıklanan butonun etrafındaki butonlar renk değiştiriyor ve butonun sayı numarasını ekrana yazdırıyor.Benim sorun yaşadığım kısım ise tam burası işlem gerçekleşiyor fakat sürekli hata raporu veriyor “command = lambda num = sn : cevredekiler(num)+yaz2(num))
TypeError: unsupported operand type(s) for +: ‘NoneType’ and ‘NoneType’” şurada bir sorun olduğunu söylüyor.Bunu nasıl halletmem gerek yaptığım yanlış nedir python programlamada yeniyim daha yeni bazı şeyleri öğreniyorm.
Ayrıca bu programa bir de bu gerçekleşen işlemleri veri tabanına aktarmak istesem hangi fonksiyonları kodları kullanmam gerek yazarsanız sevinirim.
Eğer bu şekilde yardım edemeziseniz kodlarıda paylaşabilirim.
Kodu bu linke göre sorunuza eklerseniz daha kolay yardım ederiz:
Ayrıca hatanızın sebebinin cevredekiler(num)+yaz2(num) kısmından kaynaklandığı belli. İki fonksiyon da değer döndürmüyor, yani None döndürüyor. Ve siz iki None’u toplamaya çalışıyorsunuz. Sanırım buradaki amacınız bu iki fonksiyonu da çağırmak. Böyle durumlarda lambda kullanmak doğru değil. Çünkü lambda fonksiyonlar ile yapabileceklerimiz sınırlı.
command = lambda num = sn : cevredekiler(num) or yaz2(num)
Şeklinde hoş olmayan bir hileye başvurabilirsiniz, ancak eğer lambda fonksiyonu işinizi görmüyorsa en iyisi normal bir fonksiyon tanımlamaktır:
Bu uygulamada benim yapmak istediğim birşey daha var fakat ben tam olarak bulamadım böyle bişey
Yapmak istediğim butona tıklandığında numarayı ekrana yazdırıyor fakat bu yazdırdığı numarayı ben veri tabanına nasıl aktarabilirim.Bir değişken tanımlayıp veri tabanına ekleme işlemini bu değişken üzerinden nasıl yaparım.
def cevredekiler(numara):
listem =
satir = numara/suts
sutun = numara%suts
for eleman in range(max(0,satir-1),min(satir+2,sats)):
for eleman2 in range(max(0,sutun-1),min(sutun+2,suts)):
listem.append(eleman*suts+eleman2)
for eleman3 in listem:
renkdegistir(eleman3)
Kodunuzun her satırının başına > koymak yerine kodunuzun başladığı yere ve bittiği yere ``` koyun. Markdownu yanlış kullandığınız için kodunuz garip durmuş.
Sorunuza gelince, eğer sadece bir sayıyı kaydedecekseniz bir kütüphane kullanmanıza gerek yok. Sadece bir dosyayı açıp kendiniz de sayıyı yazabilirsiniz. Eğer veritabanı kullanmanız şart değil ise ve sadece birkaç değişkeni saklayacaksanız bir dosyaya değişkenlerinizi kendiniz yazmanız daha mantıklı olacaktır.
Bu işlemleri otomatik gerçekleştirmesi lazım butona tıklanınca.Şöyle söyleyim 20 adet buton var formun içerisinde tıklanılan butonun numarası ekrana yazdırılıyor şuan ve bununla birlikte tıklanılan butonların numaralarının kayıtlarının veri tabanına aktarılmasını istiyorum.Bunu nasıl yapabilirim?
Sanırım beni tam olarak anlamadınız. Bu dediklerininizi yapmak kolay. Benim dediğim şu ki eğer sqlite kullanmanız ödeviniz için şart değilse ve uygulamanızda sadece basılan butonun numarasını kayıt edecekseniz bir dosyaya yazma işlemlerini kendiniz yapmanız daha doğru olur. sqlite kullanmanız şart mı?
Yine yanlış işaret kullandınız ``` Bu üç işareti kopyalayıp kodunuzun başına ve sonuna koyabilirsiniz. Yeni bir mesaj atmak yerine eskisini değiştirmeniz daha iyi olacaktır.