Python ''not defined'' hatası

ridvanaslnn

Femtopat
Katılım
24 Kasım 2021
Mesajlar
9
[CODE title="python" highlight="16"]def sorgu():

print("Yapmak istediginiz islemi seciniz:")
secenek=int(input("1-Araç girişi\n2-Araç çıkışı\n3-İptal etmek için -1 e basiniz.\n"))

if secenek == 1:
giren=int(input("Gelen araç sayısını giriniz:"))
if giren<20:
print('Otoparka',giren,'araç gelmiştir.')
plaka=str(input("HOŞGELDİNİZ!\nAraç plakanızı giriniz:"))
print('Giriş yapılmıştır.\nAraç plakanız:',plaka)
sorgu()
elif giren == 20:
print("Otoparkta 20 araç vardır.\nOtopark doludur.\nLütfen araç çıkışı yapınız.")
elif secenek == 2:
aracsayisi=giren-1
print("Güle Güle! Araç çıkışı yapıyorsunuz.")
plaka=str(input("Araç plakanızı giriniz:"))
print("Otoparkta kalan araç sayısı:",aracsayisi)
saat=int(input("Otoparkta kaldiginiz saati giriniz:"))
if saat == 1:
print("Ödemeniz gereken tutar 5 TL dir.")
elif saat == 2:
print("Ödemeniz gereken tutar 10 TL dir.")
elif saat == 3:
print("Ödemeniz gereken tutar 15 TL dir.")
elif saat>3:
print("Ödemeniz gereken tutar 40 TL dir.")
elif secenek == -1:
print("Çıkış yapılmıştır...")
else:
print("Hatalı tuşlama yaptınız...")
sorgu()[/CODE]

Kodu yazdım fakat araç çıkışı yapıldığı zaman araç sayısının 1 azalması gerek. 16.satırda araç sayısının işlemini girdim giren is not defined hatası geldi. En başa giren = 0 yazıyorum sorun gelmiyor bu sefer de araç sayısı her seferinde -1 çıkıyor. Araç sayısı formulünü hangi satıra yazmalıyım veya 'giren'i nasıl tanımlayabilirim?
 
Kodlar okunur değil! Muhtemelen oluşturduğun giren değişkeni farklı kapsam(scope) içerisinde bulunuyordur, veri depolamak için kullanacağın değişkenleri fonksiyon dışında tanımla aksi halde fonksiyon sonlandığında değişkenler yok edilir.
 
Çok güzel kod paylaşıyorsunuz, ölünüzü dirinizi hayır dualarımla andım.
Kodun girintilerinin düzeltilmesi okunurluğu %1 falan artırıyor.

Fonksiyon başında tanımlayın.
Araç sayısı sizin güzel kontrol yapmadığınız için -1 oluyor. Sıfır araç varken birisi çıkış yapmak istiyor, ve bunu yapabiliyorsa bir sorun vardır. Orasını da siz düşünün.

Başlığa göre gayet güzel kod:
Kod:
def sorgu():
    giren = 0
    print("Yapmak istediginiz islemi seciniz:")
    secenek = int(input("1-Araç girişi\n2-Araç çıkışı\n3-İptal etmek için -1 e basiniz.\n"))

    if secenek == 1:
        giren = int(input("Gelen araç sayısını giriniz:"))
        if giren < 20:
            print('Otoparka', giren, 'araç gelmiştir.')
            plaka = str(input("HOŞGELDİNİZ!\nAraç plakanızı giriniz:"))
            print('Giriş yapılmıştır.\nAraç plakanız:', plaka)
            sorgu()
        elif giren == 20:
            print("Otoparkta 20 araç vardır.\nOtopark doludur.\nLütfen araç çıkışı yapınız.")
    elif secenek == 2:
        aracsayisi = giren-1
        print("Güle Güle! Araç çıkışı yapıyorsunuz.")
        plaka = str(input("Araç plakanızı giriniz:"))
        print("Otoparkta kalan araç sayısı:", aracsayisi)
        saat = int(input("Otoparkta kaldiginiz saati giriniz:"))
        if saat == 1:
            print("Ödemeniz gereken tutar 5 TL dir.")
        elif saat == 2:
            print("Ödemeniz gereken tutar 10 TL dir.")
        elif saat == 3:
            print("Ödemeniz gereken tutar 15 TL dir.")
        elif saat > 3:
            print("Ödemeniz gereken tutar 40 TL dir.")
    elif secenek == -1:
        print("Çıkış yapılmıştır...")
    else:
        print("Hatalı tuşlama yaptınız...")


sorgu()
 
Çok güzel kod paylaşıyorsunuz, ölünüzü dirinizi hayır dualarımla andım.
Kodun girintilerinin düzeltilmesi okunurluğu %1 falan artırıyor.

Fonksiyon başında tanımlayın.
Araç sayısı sizin güzel kontrol yapmadığınız için -1 oluyor. Sıfır araç varken birisi çıkış yapmak istiyor, ve bunu yapabiliyorsa bir sorun vardır. Orasını da siz düşünün.

Başlığa göre gayet güzel kod:
Kod:
def sorgu():
    giren = 0
    print("Yapmak istediginiz islemi seciniz:")
    secenek = int(input("1-Araç girişi\n2-Araç çıkışı\n3-İptal etmek için -1 e basiniz.\n"))

    if secenek == 1:
        giren = int(input("Gelen araç sayısını giriniz:"))
        if giren < 20:
            print('Otoparka', giren, 'araç gelmiştir.')
            plaka = str(input("HOŞGELDİNİZ!\nAraç plakanızı giriniz:"))
            print('Giriş yapılmıştır.\nAraç plakanız:', plaka)
            sorgu()
        elif giren == 20:
            print("Otoparkta 20 araç vardır.\nOtopark doludur.\nLütfen araç çıkışı yapınız.")
    elif secenek == 2:
        aracsayisi = giren-1
        print("Güle Güle! Araç çıkışı yapıyorsunuz.")
        plaka = str(input("Araç plakanızı giriniz:"))
        print("Otoparkta kalan araç sayısı:", aracsayisi)
        saat = int(input("Otoparkta kaldiginiz saati giriniz:"))
        if saat == 1:
            print("Ödemeniz gereken tutar 5 TL dir.")
        elif saat == 2:
            print("Ödemeniz gereken tutar 10 TL dir.")
        elif saat == 3:
            print("Ödemeniz gereken tutar 15 TL dir.")
        elif saat > 3:
            print("Ödemeniz gereken tutar 40 TL dir.")
    elif secenek == -1:
        print("Çıkış yapılmıştır...")
    else:
        print("Hatalı tuşlama yaptınız...")


sorgu()
abi ben senden korkuyorum ya artık. kod yazımı burda hatalı olmuş normalde böyle değildi. lütfen ölümü dirimi rahat bırak
 

Geri
Yukarı