Merahaba,
tel.txt dosyasının içi:
ayse macit : 5001023435
necmi eroglu : 5067891234
dosyanın içindekileri sözlüğe aktardıktan sonra kalan tüm işlemleri (listele,ekle,sil,bul) sözlük üzerinden yapmam gerekiyor.
1.sorunum: oluşturduğum sözlüğe yeni veri eklemek istediğimde ekliyor, ama tekrar ekleme yapmak istediğimde eklediğim şeyi değiştiriyor. yani her zaman “2” yazdığım yere ekliyor. O kısımda kodum hatalı biliyorum ama nasıl düzeltebilirim bunu?
2.sorunum: sözlük içinde ad veya soyad bilgisi girildiğinde telefon numarasını bulmasını istiyorum. Ama böyle biri yoktur yanıtını alıyorum. O kısımdaki hatamı nasıl düzeltebilirim?
3.sorunum: her şey bittikten sonra yani çıkışı seçince bu yeni bilgilerin hepsini tel.txt dosyasına aktarmam gerekiyor. Nasıl yaparım?
Teşekkürler şimdiden…
with open(“tel.txt”, encoding=“utf-8”) as f:
data = f.readlines()
data = [
i[0].split(" “) + [i[1]]
for i in [i.strip().split(” : ") for i in data]
]
#print(data)
sozluk = {
i: {
“Ad”: j[0],
“Soyad”: j[1],
“Telefon”: j[2]
} for i, j in enumerate(data)
}
yeni_tel_defteri= sozluk.copy()
while True:
secim= input("1-listele,\n2-ekle,\n3-sil,\n4-bul,\n5-cikis\nislemlerinden birini seciniz.")
if(secim=="5"):
break
elif secim =="1":
print("Telefon defteriniz= ",yeni_tel_defteri)
elif secim =="2":
yeni_tel_defteri["2"] = {"Ad": input("ad:"),"Soyad":input("soyad:"),"Telefon":input("telefon:")}
print(yeni_tel_defteri)
elif secim =="3":
siraNo = str(input("silinecek sira secin: "))
if siraNo in yeni_tel_defteri:
yeni_tel_defteri.pop(siraNo)
print("basariyla silinmistir.")
else:
print("Hatali satir numarasi girdiniz.")
print(yeni_tel_defteri)
elif secim == "4":
bulunacak = str(input("bulmak istediginiz kisinin bilgisini giriniz."))
if bulunacak in yeni_tel_defteri:
yeni_tel_defteri.get(bulunacak)
print("bulunmustur.")
else:
print("boyle biri bulunamadi.")
input("Menuye donmek icin Enter'a basiniz...")