Yazılım | Programlama Python ile sözlüğe elemany ekleyip nasıl yazdırırım?

bil4derim

Üye
9 Tem 2020
105
0
İzmir
sözlüğe eleman eklemek istiyorum ve sözlüğü yazdırmak istiyorum ama olmuyor. soruyor kaç eklemek istiyorsun veriyorum ama listele dediğimde göstermiyor. ayrıca txt yi açtığımda da gözükmüyor. yardım edermisiniz?
#kafanızın karışmaması için önemsiz yerleri sildim


Kod:
import os

masalar = dict()
for i in range(10):
    masalar[i] = 0
va = 10

def masaEkle():
    kac = int(input("Kaç adet masa eklemek istiyorsunuz? = "))
    for a in range(11,10+kac):
        masalar[a] = 0

    va = 10+kac



def hesapKontrol(dosya_adi):
    veriler = list()
    try:
        dosya = open(dosya_adi)
        veriler = dosya.read()
        veriler = veriler.split("\n")
        veriler.pop() #son öğeyi sil
        dosya.close()
        flag = True
    except FileNotFoundError:
        dosya = open(dosya_adi,"w")
        dosya.close()
        print("İlk kez çalıştırıldı! Kayıt Dosyası Oluşturuldu!")
        flag = False

    if flag:
        for i in enumerate(veriler): #bu ksıım çok çok önemli gerekirse tekrar aç izle tüm mantık burada
            masalar[i[0]] = float(i[1]) #enumerate her satırı 0dan başlayarak 2li demet olarak aldığı için burda da bunu kullanıyoruz
    else:
        pass






def main():
    hesapKontrol("kayıtlar.txt")
    while True:
        
        secim = input("İşleminizi Seçin: ")

        if secim == "1":
            for i in range(va):
                print("Masa {} için hesap {}".format(i, masalar[i]))
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

        elif secim == "4":
            masaEkle()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

main()
 
Moderatör tarafında düzenlendi:

maj344

Katılımcı Üye
25 Şub 2019
277
2
Cevap: Pytohn sözlükler sorun

mantıksız şekilde eleman eklemişsin dict'e, ne yapmak istediğini tam olarak anlatır mısın? daha güzel kodlar çıkartabiliriz. açık olursa sevinirim.
 

bil4derim

Üye
9 Tem 2020
105
0
İzmir
Cevap: Pytohn sözlükler sorun

mantıksız şekilde eleman eklemişsin dict'e, ne yapmak istediğini tam olarak anlatır mısın? daha güzel kodlar çıkartabiliriz. açık olursa sevinirim.


olay şu lokanta var. bu lokantada masa var 10 tane. bu masaların hesaplarını kontrol ediyor program. sonra dedim ki adam belki lokantayı büyüttü masa eklemek istedi. masa ekleme bölümü de açayım. fakat ekleyemedim hata veriyor. aslında hata da vermiyor eklemiyor. mantıksal hata var galiba




Kod:
import os

masalar = dict()
for i in range(10):
    masalar[i] = 0
va = 10

def masaEkle():
    kac = int(input("Kaç adet masa eklemek istiyorsunuz? = "))
    for a in range(11,10+kac):
        masalar[a] = 0

    va = 10+kac


def hesapEkle():
    masaNo = int(input("Masa No: "))
    gecerli = masalar[masaNo]
    eklenecek = float(input("Eklenecek Ücret: "))
    toplam = gecerli + eklenecek
    masalar[masaNo] = toplam


def hesapSil():
    masaNo = int(input("Masa No: "))
    gecerli = masalar[masaNo]
    print("Mevut Borç {}".format(gecerli))
    Silinecek = float(input("Silinecek Borç: "))
    toplam = gecerli - Silinecek
    masalar[masaNo] = toplam


def hesapKontrol(dosya_adi):
    veriler = list()
    try:
        dosya = open(dosya_adi)
        veriler = dosya.read()
        veriler = veriler.split("\n")
        veriler.pop() #son öğeyi sil
        dosya.close()
        flag = True
    except FileNotFoundError:
        dosya = open(dosya_adi,"w")
        dosya.close()
        print("İlk kez çalıştırıldı! Kayıt Dosyası Oluşturuldu!")
        flag = False

    if flag:
        for i in enumerate(veriler): #bu ksıım çok çok önemli gerekirse tekrar aç izle tüm mantık burada
            masalar[i[0]] = float(i[1]) #enumerate her satırı 0dan başlayarak 2li demet olarak aldığı için burda da bunu kullanıyoruz
    else:
        pass






def main():
    hesapKontrol("kayıtlar.txt")
    while True:
        os.system("clear")
        print("""
        [1] Masaları Görüntüle
        [2] Hesap Ekle
        [3] Hesap Sil
        [4] Masa Ekle
        [Q] Çıkış

        """)

        secim = input("İşleminizi Seçin: ")

        if secim == "1":
            for i in range(va):
                print("Masa {} için hesap {}".format(i, masalar[i]))
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()


        elif secim == "2":
            hesapEkle()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

        elif secim == "3":
            hesapSil()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

        elif secim == "4":
            masaEkle()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

        elif secim == "q" or secim == "Q":
            print("Çıkış Yapıldı")
            quit()


main()
 

maj344

Katılımcı Üye
25 Şub 2019
277
2
Cevap: Pytohn sözlükler sorun

olay şu lokanta var. bu lokantada masa var 10 tane. bu masaların hesaplarını kontrol ediyor program. sonra dedim ki adam belki lokantayı büyüttü masa eklemek istedi. masa ekleme bölümü de açayım. fakat ekleyemedim hata veriyor. aslında hata da vermiyor eklemiyor. mantıksal hata var galiba




Kod:
import os

masalar = dict()
for i in range(10):
    masalar[i] = 0
va = 10

def masaEkle():
    kac = int(input("Kaç adet masa eklemek istiyorsunuz? = "))
    for a in range(11,10+kac):
        masalar[a] = 0

    va = 10+kac


def hesapEkle():
    masaNo = int(input("Masa No: "))
    gecerli = masalar[masaNo]
    eklenecek = float(input("Eklenecek Ücret: "))
    toplam = gecerli + eklenecek
    masalar[masaNo] = toplam


def hesapSil():
    masaNo = int(input("Masa No: "))
    gecerli = masalar[masaNo]
    print("Mevut Borç {}".format(gecerli))
    Silinecek = float(input("Silinecek Borç: "))
    toplam = gecerli - Silinecek
    masalar[masaNo] = toplam


def hesapKontrol(dosya_adi):
    veriler = list()
    try:
        dosya = open(dosya_adi)
        veriler = dosya.read()
        veriler = veriler.split("\n")
        veriler.pop() #son öğeyi sil
        dosya.close()
        flag = True
    except FileNotFoundError:
        dosya = open(dosya_adi,"w")
        dosya.close()
        print("İlk kez çalıştırıldı! Kayıt Dosyası Oluşturuldu!")
        flag = False

    if flag:
        for i in enumerate(veriler): #bu ksıım çok çok önemli gerekirse tekrar aç izle tüm mantık burada
            masalar[i[0]] = float(i[1]) #enumerate her satırı 0dan başlayarak 2li demet olarak aldığı için burda da bunu kullanıyoruz
    else:
        pass






def main():
    hesapKontrol("kayıtlar.txt")
    while True:
        os.system("clear")
        print("""
        [1] Masaları Görüntüle
        [2] Hesap Ekle
        [3] Hesap Sil
        [4] Masa Ekle
        [Q] Çıkış

        """)

        secim = input("İşleminizi Seçin: ")

        if secim == "1":
            for i in range(va):
                print("Masa {} için hesap {}".format(i, masalar[i]))
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()


        elif secim == "2":
            hesapEkle()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

        elif secim == "3":
            hesapSil()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

        elif secim == "4":
            masaEkle()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

        elif secim == "q" or secim == "Q":
            print("Çıkış Yapıldı")
            quit()


main()


masaların neden değerleri 0, ne gerek var? direkt bir int variable oluştur, arttır işte. bana programı tam olarak anlatırsan, hepsini baştan yazarım. çünkü kod kötü.
 

bil4derim

Üye
9 Tem 2020
105
0
İzmir
Cevap: Pytohn sözlükler sorun

masaların neden değerleri 0, ne gerek var? direkt bir int variable oluştur, arttır işte. bana programı tam olarak anlatırsan, hepsini baştan yazarım. çünkü kod kötü.

kodlarım kötü filan değil kodlarım efsane

değerleri 0 çünkü müşteri gelmezse masanın hesabı 0 kalır. geldikçe değeri arttırıyorum

programın mantığı:

masa numaraları ve karşılarında borçları var. bunu sözlük ile yaptım. sonrasında bu masalara borç ekleyip siliyorum. dedim ki masa da ekleyip çıkartabileyim. orda sıkıntı çıkıyor.
program normalde çalışıyor. masa ekle fonksiyonunu çıkartın bir iki değişiklik yapın program çalışır. hatta çalışan hali bu :

Kod:
import os

masalar = dict()
for i in range(10):
    masalar[i] = 0
"""va = 10

def masaEkle():
    kac = int(input("Kaç adet masa eklemek istiyorsunuz? = "))
    for a in range(11,10+kac):
        masalar[a] = 0

    va = 10+kac"""


def hesapEkle():
    masaNo = int(input("Masa No: "))
    gecerli = masalar[masaNo]
    eklenecek = float(input("Eklenecek Ücret: "))
    toplam = gecerli + eklenecek
    masalar[masaNo] = toplam


def hesapSil():
    masaNo = int(input("Masa No: "))
    gecerli = masalar[masaNo]
    print("Mevut Borç {}".format(gecerli))
    Silinecek = float(input("Silinecek Borç: "))
    toplam = gecerli - Silinecek
    if toplam<0:
        print("İşlemde hata var kontrol ediniz")
    else:
        masalar[masaNo] = toplam


def kayitGuncelle():
    dosya = open("kayıtlar.txt","w")
    for i in range(10):
        ucret = masalar[i]
        ucret = str(ucret)
        dosya.write(ucret + "\n")
    dosya.close()




def hesapKontrol(dosya_adi):
    veriler = list()
    try:
        dosya = open(dosya_adi)
        veriler = dosya.read()
        veriler = veriler.split("\n")
        veriler.pop() #son öğeyi sil
        dosya.close()
        flag = True
    except FileNotFoundError:
        dosya = open(dosya_adi,"w")
        dosya.close()
        print("İlk kez çalıştırıldı! Kayıt Dosyası Oluşturuldu!")
        flag = False

    if flag:
        for i in enumerate(veriler): #bu ksıım çok çok önemli gerekirse tekrar aç izle tüm mantık burada
            masalar[i[0]] = float(i[1]) #enumerate her satırı 0dan başlayarak 2li demet olarak aldığı için burda da bunu kullanıyoruz
    else:
        pass






def main():
    hesapKontrol("kayıtlar.txt")
    while True:
        os.system("clear")
        print("""
        [1] Masaları Görüntüle
        [2] Hesap Ekle
        [3] Hesap Sil
        
        [Q] Çıkış

        """)

        secim = input("İşleminizi Seçin: ")

        if secim == "1":
            for i in range(10):
                print("Masa {} için hesap {}".format(i, masalar[i]))
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()


        elif secim == "2":
            hesapEkle()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

        elif secim == "3":
            hesapSil()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()

        elif secim == "q" or secim == "Q":
            print("Çıkış Yapıldı")
            quit()


        """elif secim == "4":
            masaEkle()
            print("İşlem Tamamlandı! Ana menüye dönmek için 'ENTER'a bas! ")
            input()"""



main()
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.