Python3: Nameerror: Name 'hesap' is not defined

imoutofmaterial

Decapat
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:
Oluşturduğun hesap diğer fonksiyonlara dönmüyor. Ben olsam kaydı dışarıdan alır ya da döndürmeyi dener, geri kalanları ayrı fonksiyona atardım.
 
Son düzenleme:

Yeni konular

Geri
Yukarı