SQLite3 modülü ile bir kütüphane programı yazmaya çalışıyorum ama bu hatayı alıyorum, PyCharm'da ise bazı kullandığım parametrelerin atanmadığını söylüyor. Nasıl düzeltebilirim bu hatayı?
Bu kod classlarımın ve fonksiyonlarımın bulunduğu dosya:
Nasıl çözeceğim bu lanet hatayı? Class kodlarını yeniden yazdım ama yine de aynı hatayı alıyorum.
Bu kod classlarımın ve fonksiyonlarımın bulunduğu dosya:
Kod:
import sqlite3
import time
class Kitap():
def __init__(self,isim,yazar,yayınevi,tür,baskı):
self.isim = isim
self.yazar = yazar
self.yayınevi = yayınevi
self.tür = tür
self.baskı = baskı
def __str__(self):
return "Kitabın Adı: {}\nKitabın Yazarı: {}\nYayınevi: {}\nKitabın Türü: {}\nKaçıncı Baskısı: {}".format(self.isim,self.yazar,self.yayınevi,self.tür,self.baskı)
class Kütüphane():
def __init__(self):
self.baglanti_olustur()
def baglanti_olustur(self):
self.baglanti = sqlite3.connect("KütüphaneDatabase.db")
self.cursor = self.baglanti.cursor()
sorgu = "CREATE TABLE IF NOT EXITS Kitaplık (isim TEXT,yazar TEXT,yayınevi TEXT,tür TEXT,baskı INT"
self.cursor.execute(sorgu)
self.baglanti.commit()
def baglanti_sonlandir(self):
self.baglanti.close()
def kitaplari_goster(self):
sorgu = "SELECT * FROM Kitaplık"
self.cursor.execute(sorgu)
kitaplar = self.cursor.fetchall()
if len(kitaplar) == 0:
print("Kitaplıkta Kitap Bulunmuyor.")
else:
for i in kitaplar:
kitap = Kitap(i[0],i[1],i[2],i[3],i[4])
print(kitap)
def kitap_ekle(self,kitap):
sorgu = "INSERT INTO Kitaplık Values(?,?,?,?,?)"
self.cursor.execute(sorgu,(kitap.isim,kitap.yazar,kitap.yayınevi,kitap.tür,kitap.baskı))
self.baglanti.commit()
def kitap_sorgula(self,isim):
sorgu = "Select * From Kitaplık Where isim = ?"
self.cursor.execute(sorgu,(isim))
kitaplar = self.cursor.fetchall()
if len(kitaplar) == 0:
print("Hiçbir Kitap Kayıtlı Değil")
else:
kitap = Kitap(kitaplar[0][0],kitaplar[0][1],kitaplar[0][2],kitaplar[0][3],kitaplar[0][4])
print(kitap)
def kitap_sil(self,isim):
sorgu = "Delete From Kitaplık Where isim = ?"
self.cursor.execute(sorgu,(isim,))
self.baglanti.commit()
def baski_yukselt(self,isim):
sorgu = "Select from Kitaplık Where isim = ?"
self.cursor.execute(sorgu,(isim,))
kitaplar = self.cursor.fetchall()
if len(kitaplar) == 0:
print("Böyle bir kitaplık bulunmuyor")
else:
for i in kitaplar:
baskı = i[0][4]
baskı += 1
sorgu2 = "Update Kitaplar set baskı = ? where isim = ?"
self.cursor.execute(sorgu2,(baskı,isim,))
self.baglanti.commit()
[/ICODE]
Bu kod ise kullanıcı girdilerinin alındığı ve fonksiyonların çalıştırıldığı dosyadan.
[ICODE]
from Kütüphane import *
print("""*************************************
Kütüphane Programına Hoşgeldiniz.
İşlemler;
1. Kitapları Göster
2. Kitap Sorgulama
3. Kitap Ekle
4. Kitap Sil
5. Baskı Yükselt
Çıkmak için 'q' ya basın.
*********************************""")
while True:
islem = input("Hangi İşlemi Yapmak İstersiniz? :")
if islem == "1":
Kütüphane.kitaplari_goster()
elif islem == "2":
isim = input("Hangi Kitabı İstiyorsunuz?:")
print("Kitap Sorgulanıyor.")
time.sleep(2)
Kütüphane.kitap_sorgula(isim)
elif islem == "3":
isim = input("İsim:")
yazar = input("Yazar:")
yayınevi = input("Yayınevi:")
tür = input("Tür:")
baskı = int(input("Baskı"))
yeni_kitap = Kitap(isim,yazar,yayınevi,tür,baskı)
print("Kitap Ekleniyor.")
time.sleep(2)
Kütüphane.kitap_ekle(yeni_kitap)
elif islem == "4":
isim = input("Hangi Kitabı Silmek İstiyorsunuz?")
dogrulama = input("Emin Misiniz ? E/H")
if dogrulama == "E":
print("Kitap Siliniyor.")
time.sleep(2)
Kütüphane.kitap_sil(isim)
print("Kitap Silindi.")
elif dogrulama == "H":
print("Program Sonlandırılıyor.")
break
elif islem == "5":
isim = input("Hangi Kitabın Baskısını Yükseltmek İstiyorsunuz?")
print("Baskı Yükseltiliyor.")
time.sleep(2)
Kütüphane.baski_yukselt(isim)
print("Baskı Yükseltildi")
elif islem == "q":
print("Program Kapatılıyor.")
break
else:
print("Geçersiz işlem.")