Demek istediğim, def baglanti_oluştur fonksiyonunda sqlite işlemi yapmışım değil mi? Normalde diğer alttaki tanımlanmış (mesela def şifre_koy) fonksiyonlarda da sqlite işlemi uygulamam lazım. Yani cursor.execute gibi işlemler. Burayı anladığınızı zannediyorum. Mesele şu, sqlite i tüm fonksiyonlarda kullanmalı mıyım? Farkındaysanız def (baglantı_oluştur, baglantı_kes ve havale) adlı fonksiyonlarda sqlite kullanmışım. Bu normal mi? Olabilir mi? Üstelik kod çalışmadı. Nerde mantık hatası yaptım söylerseniz sevinirim…
import time
import sqlite3
class Banka:
def __init__(self, isim, bakiye, şifre, kart_no, kart_limiti, kart_bakiyesi, havale):
self.isim = isim
self.bakiye = bakiye
self.şifre = şifre
self.kart_no = kart_no
self.kart_limiti = kart_limiti
self.kart_bakiyesi = kart_bakiyesi
self.havale = havale
def __str__(self):
return "İsim: {}\nBakiye: {}\nŞifre: {}\nKart No: {}\nKart Limiti: {}\nKart Bakiyesi: {}\nHavale: {}\n".format(self.isim, self.bakiye, self.şifre, self.kart_no, self.kart_limiti, self.kart_bakiyesi, self.havale)
class ATM(Banka):
def __init__(self):
self.bağantı_oluştur()
def bağantı_oluştur(self):
self.bağlantı = sqlite3.connect("Banka.db")
self.cursor = self.bağlantı.cursor()
sorgu = "Create Table If Not Exists Banka (isim TEXT, bakiye INT, şifre INT, kart_no INT, kart_limiti INT, kart_bakiyesi INT, havale INT)"
self.cursor.execute(sorgu)
self.bağlantı.commit()
def bağlantı_kes(self):
self.bağlantı.close()
def şifre_koy(self, koy_şifre):
print("Merhaba... Bankamıza Hoşgeldiniz... Şifre Koyarak giriş yapabilirsiniz...")
while True:
self.şifre = int(input("Şifrenizi giriniz: "))
if self.şifre == koy_şifre:
print("Şifre doğru...")
time.sleep(2)
break
else:
print("Şifre yanlış...")
time.sleep(2)
continue
def şifre_yenile(self, yeni_şifre):
while True:
karar = input("Şifrenizi değiştirmek istiyor musunuz? (E/H): ")
if karar == "E":
self.şifre = yeni_şifre
print("Şifreniz başarıyla değiştirildi.")
time.sleep(2)
break
elif karar == "H":
print("Şifreniz değiştirilmedi.")
time.sleep(2)
break
def şifre_sorgula(self):
print("Şifreniz: ", self.şifre)
def hesaba_para_yatır(self,miktar):
self.bakiye += int(miktar)
print("Para başarıyla yatırıldı.")
def para_çek(self,çekilecek_para):
if çekilecek_para > self.bakiye:
print("Bakiyeniz yetersiz.")
else:
self.bakiye -= çekilecek_para
print("Para başarıyla çekildi.")
print("Bakiyeniz: ", self.bakiye)
def bakiye_sorgula(self):
print("Bakiyeniz: ", self.bakiye)
def kredi_mevduatı_oluştur(self): # Kredi oluşturmak için ipotek istesin.
print("DİKKAT!! Kart limitiniz 5000 TL dir. Ona göre borç alınız...")
time.sleep(2)
self.kart_no = int(input("Kart numaranızı giriniz: "))
self.kart_limiti = int(input("Kart limitinizi giriniz: "))
borç = int(input("Alacağınız Borç miktarınızı giriniz: "))
if borç > self.kart_limiti:
print("Kart limitiniz yetersiz.")
else:
self.bakiye += borç
print("Kredi başarıyla oluşturuldu.")
time.sleep(2)
print("Kart limitiniz: ", self.kart_limiti)
print("Kart bakiyeniz: ", self.bakiye)
print("Kart numaranız: ", self.kart_no)
def kredi_borcu_öde(
self): # Girilen tutar eğer ödenmesi gereken kredi borcundan az ise, eksik kısmı borçlara kaydetsin ve bakiyeyi azaltıp borcu sıfırlasın.
borç = int(input("Ödeme yapmak istediğiniz tutarı giriniz:"))
if borç > self.bakiye:
print("Bakiyeniz yetersiz.")
else:
self.bakiye -= borç
print("Kredi borcunuz başarıyla ödendi....")
def fatura_öde(
self): # Eğer bakiye eksiye düşerse fatura ödeme işlemi yapsın ve bakiye eksiye düşsün. Bakiyedeki eksi miktar kadar borçlansın
print("Su faturası 100 TL dir.")
time.sleep(2)
print("Elektrik faturası 200 TL dir.")
time.sleep(2)
print("Su faturası için 1'i, Elektrik faturası için 2'yi tuşlayınız.")
time.sleep(1)
fatura = int(input("Fatura numarasını giriniz: "))
if fatura == 1:
if self.bakiye < 100:
print("Bakiyeniz yetersiz.")
else:
self.bakiye -= 100
print("Su faturası başarıyla ödendi.")
time.sleep(2)
print("Kalan bakiyeniz: ", self.bakiye)
elif fatura == 2:
if self.bakiye < 200:
print("Bakiyeniz yetersiz.")
else:
self.bakiye -= 200
print("Elektrik faturası başarıyla ödendi.")
time.sleep(2)
print("Kalan bakiyeniz: ", self.bakiye)
def çıkış(self):
print("Kartınız iade ediliyor...")
time.sleep(2)
print("Kartınız iade edildi.")
time.sleep(1)
print("İyi günler dileriz.")
time.sleep(2)
quit()
def havale(self,para):
sorgu = "INSERT INTO havale (havale_miktarı) VALUES (?)"
self.bağlantı.execute(sorgu, (para,))
self.bağlantı.commit()
banka = Banka()
print("*****************", "Bankamıza Hoşgeldiniz", "*****************")
print("1-Şifre Koy","2-Şifre yenile","3-Şifre Sorgula","4-Hesaba para yatır","5-Para çek","6-Bakiye Sorgula "
,"7-Kredi Mevduatı Oluştur","8-Kredi Borcu Öde","9-Fatura Öde","10-Çıkış",sep="\n")
while True:
işlem = int(input("Yapmak istediğiniz işlemi seçiniz: "))
if işlem == 1:
banka.şifre_koy()
elif işlem == 2:
yeni_şifre = input("Yeni şifrenizi giriniz: ")
banka.şifre_yenile(yeni_şifre)
elif işlem == 3:
banka.şifre_sorgula()
elif işlem == 4:
miktar = int(input("Yatırmak istediğiniz tutarı giriniz: "))
banka.hesaba_para_yatır(miktar)
elif işlem == 5:
çekilecek_para = int(input("Çekmek istediğiniz tutarı giriniz: "))
banka.para_çek(çekilecek_para)
elif işlem == 6:
banka.bakiye_sorgula()
elif işlem == 7:
banka.kredi_mevduatı_oluştur()
elif işlem == 8:
banka.kredi_borcu_öde()
elif işlem == 9:
banka.fatura_öde()
elif işlem == 10:
banka.çıkış()
else:
print("Hatalı işlem...")
time.sleep(2)
continue