Kullanıcıdan input alarak sözlük oluşturmak?

Merhaba arkadaşlar. Öncelikli olarak şunu sorayım:

Bir programda kullanıcı bilgileri, ürün bilgileri gibi girişleri yaparken “sözlükler” mi kullanılmalıdır? Örneğin bir işçinin ismi, soyismi, görevi vb. gibi verileri girmek için sözlükleri mi tercih etmeliyim?

İkinci soru şu: aşağıdaki kodlarda da göreceğiniz üzere, kullanıcıdan “input” alarak bir sözlük oluşturmak istedim. Amacım ilerleyen zamanlarda bu sözlük yapısını çağırınca, kullanıcının girdiği verileri göstermek. Daha doğrusu, program arayüzünde beş altı bölümlük input alanları olacak ve kullanıcının girdiği veriler saklanacak. Bu şekilde izlediğim yol mantıklı mı?

Tek bir sözlük oluşturup, input değişkenlerini atayarak, kullanıcın sürekli veritabanına bilgi sağlaması mantıklı bir şey midir?

Ayrıca, en altta da gördüğünüz üzere, sanırım henüz bir veritabanı bağlantısı kurmadığım için önceki girilen bilgileri çekemedim. Bunun için veritabanı mı oluşturmalıyım?

Tavsiyelerinizi ve desteklerinizi bekliyorum. Sağlıcakla.

print("******* ürün bilgilerini giriniz *********")
urunkod = input("Ürünün dosya kodunu giriniz: ")
kumas = input("İlgili ürünün kumaşını giriniz: ")
kumasgr = float(input("Sipariş verilecek kumaş gramajını giriniz: "))
kumasen = float(input("Sipariş verilecek kumaş enini giriniz: "))
kumasboy = float(input(f"{kumas} için hazırlanmış pastal boyunu giriniz: "))
kumaskat = float(input(f"{kumas} için hazırlanmış pastal katını giriniz: "))

urunkod = {
    "urunad" : kumas,
    "kumasad" : kumas, 
    "kumasgr" : kumasgr, 
    "kumasen" : kumasen,
    "kumasboy" : kumasboy, 
    "kumaskat" : kumaskat
}

carp = urunkod["kumasgr"] * urunkod["kumasen"] * urunkod["kumasboy"]
toplam = carp * urunkod["kumaskat"]
toplam = round(100,1)
print(urunkod["urunad"], "kodlu ürün için hesaplanan", urunkod["kumasad"], f"miktarı: {toplam} KG.")

verigoster = input("Görmek istediğiniz ürünün kodunu giriniz: ")
if verigoster == urunkod:
    print(urunkod)
1 Beğeni

Tamamen bu verileri nerede, nasil kullanacagina bagli.

1 Beğeni

Hayır, sözlük veri yapılarını kullanmak zorunda değilsiniz. Program boyunca sözlük veri yapısında tuttuğunuz veriler, program kapandıktan sonra yok olur. Sonraki zamanlarda bu verilere erişip kullanıcıya sunamazsınız.

Bu yüzden verileri bir yerde saklamanız gerekir. Bu saklama veritabanlarında olabilir, dosyada olabilir farketmez. Ama sözlük veri yapısıyla verileri kalıcı olarak değil geçici olarak sakladığınızı bilmeniz gerekir.

2 Beğeni

Cevaplar için teşekkür ediyorum. Her halükârda yapmak istediğim şeyi, bir veritabanı ile yapacağım anlaşılan.

1 Beğeni

Muhtemelen calistiginiz sektorde ufakda olsa bir isletmede isinizi kolaylastiracak bir program yapmak istiyorsunuz. Ben 2-3 sene oncesinde Access e merak sarmis ve bu programla 3-4 tane sektorel program yazmistim. Bunlari yazarkende accesstr.net sitesindeki uzmanlardan , cokca destek alarak sonuca ulastim fakat accessle bir yere kadar gidebiliyorsunuz ozellikle gorsel arayuz gelistirmedeki sinirlari yuzunden kafamdaki projeyi gerceklestirmek amaciyla python javascript vs gibi isimi daha profesyonelce yapmami sagliyacak programlari ogrenmeye calisiyorum tamamen hobi amacli. Veri tabani kullanmak sart ama oraya gelene kadar daha cok yolumuz var ama en uzun yolculuklar bile atilan ilk adimla baslar diye bosuna dememisler. Hatta butun dersleri bitirip iyi kotu bir seyler yapabilecek duzeye gelirsek bu forumun sayesinde belki ortak bir proje olusturup ( kucuk bir isletmenin muhasebe cari cek senet gibi islerini takip edebilecegi bir uygulama mesela ) dersleri takip eden 3-5 kisinin ortak gelistirecegi bir yazilim bizlerin kendimizi test etmesi ve gelistirmesi adina cok yararli olur sanirim nasilsa acik kaynak olacak bittigindede isteyen siteden indirir kullanir. Boyle bir paylasim yapabilirsek en azindan bir projenin basindan sonuna kadar Forumdaki uzmanlarin da destegini alarak kisa zamanda cok sey ogrenme ve kendimizi gelistirme firsati yaratiriz diye dusunuyorum. Zamani gelince umarim gerceklesir.

Açıkçası ben de hobi amaçlı öğrenmeye çalışıyorum ve zaman geçtikçe, başlangıçta anlam veremediğim şeyler kendi başıma yapmaya başladım. Ancak dediğiniz gibi, derslerin şu an daha ortasında sayılırım hocam. Söylediğiniz proje fikri de oldukça mantıklı. Yani nasip olursa neden olmasın ki? :slight_smile:

Sözlük gibi basit yapıları kaydetmek için pickle veya json modülü de kullanılabilir.

1 Beğeni

Teşekkürler hocam. Araştıracağım inşallah:)

peki hocam string den dicte nasıl yaparız pickle gibi modül ile yapmak için ayrı bir class oluşturup o classda da read tanımlamak gerekiyor çok iyi bir çözüm gibi durmuyor

pickle.loads ile.

Anlamadım.

hmm loads yerine load ile yaptığımda .read metoduna sahip bir obje istiyordu ilk parametre olarak