Python3: Nameerror: Name 'hesap' is not defined

imoutofmaterial

Hectopat
Katılım
7 Ekim 2020
Mesajlar
27
"girisYap()" fonksiyonunda 'name error' hatası veriyor. Sizce nedeni ne olabilir?

1608630111936.png


Python:
import time.
import sqlite3.

class Hesap:

    def __init__(self, ad, sifre, para):
        self.ad = ad
        self.sifre = sifre
        self.para = para

class Banka():

    def __init__(self):
        self.baglan()

    def baglan(self):

        self.con = sqlite3.connect("banka.db")

        self.cursor = self.con.cursor()

        sorgu = "CREATE TABLE IF NOT EXISTS veritabanı (İsim TEXT, Sifre INTEGER, Para INTEGER)"
        self.cursor.execute(sorgu)

    def cik(self):

        self.con.close()

    def kayitOl(self):

        ad = input("Adınız:")
        sifre = input("Şifreniz:")
        para = 0

        hesap = Hesap(ad, sifre, para)

        print("İşlem yapılıyor...")
        time.sleep(.500)

        sorgu = "insert into veritabanı Values(?, ?, ?)"
        self.cursor.execute(sorgu, (hesap.ad, hesap.sifre, hesap.para, ))
        self.con.commit()

        print("İşleminiz başarı ile gerçekleştirildi!")

    def paraYatir(self):

        self.yeniPara = input("Ne kadar para yatırmak istersiniz?")

        print("İşleminiz yapılıyor...")
        time.sleep(.500)

        self.yeniPara += hesap.para

        sorgu = "Update veritabanı set Para = ?"
        self.cursor.execute(sorgu, (self.yeniPara, ))
        self.con.commit()

        print("İşleminiz başarı ile gerçekleştirildi!")

    def paraCek(self):

        self.yeniPara = input("Ne kadar para çekmek istersiniz?")

        print("İşleminiz yapılıyor...")
        time.sleep(.500)

        if self.yeniPara > hesap.para:
            print("Bu kadar büyük miktarda krediyi çekecek paranız bulunmamaktadır!")

        else:

            self.yeniPara -= hesap.para

            sorgu = "Update veritabanı set Para = ?"
            self.cursor.execute(sorgu, (self.yeniPara, ))
            self.con.commit()

            print("İşleminiz başarı ile gerçekleştirildi")

    def bilgileriGor(self):
        sorgu = "Select * from veritabanı where İsim = ?"
        self.cursor.execute(sorgu, (hesap.ad, ))


    def hesapSil(self):
        print("Bu işlemi gerçekleştirmek istediğinizden emin misiniz? (E/H)")

        cevap = input()

        if cevap == "E":
            self.oluSifre = input("Lütfen şifrenizi giriniz:")

            sorgu = "Delete from veritabanı where Şifre = ?"
            self.cursor.execute(sorgu, (self.oluSifre, ))
            self.con.commit()

        elif cevap == "H":
            print("İşlem gerçekleştirilmedi...")

        else:
            print("Böyle bir cevap bulunmamaktadır!")

    def girisYap(self):

        while True:

            cevap = input("Kayıt oldunuz mu? (E/H):")

            if cevap == "E":
                self.ad = input("Adınızı giriniz:")
                self.sifre = input("Şifrenizi giriniz:")
                if self.ad == hesap.ad and self.sifre == hesap.sifre:
                    print("Başarı ile giriş yaptınız!")
                    break

                else:
                    print("Giriş yapamadnız! Lütfen tekrar deneyiniz")
                    continue
            elif cevap == "H":
                banka.kayitOl()
                break

banka = Banka()

print("İşlemBanka'ya Hoş Geldiniz!\n----------------------------")

banka.girisYap()
banka.baglan()

print("""Yapabileceğiniz işlemler:
----------------------------------------------------------------
1: Para yatır

2: Para çek

3: Bakiyeyi gör

4: Hesap sil

q: Çık
-----------------------------------------------------------------
""")

while True:
    cevap = input(">>>")

    if cevap == "1":
        banka.paraYatir()

    elif cevap == "2":
        banka.paraCek()

    elif cevap == "3":
        banka.bilgileriGor()

    elif cevap == "4":
        banka.hesapSil()

    elif cevap == "q":
        print("Yine bekleriz :)")
        banka.cik()[CODE=Python]
        break
 
Son düzenleme:
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı