yapılacak budur
ana_menu=("*----------------------MENU-----------------*\n1-öğrenci ekleme\n2-öğrenci arama(öğrenci no ile\n3-sınıf listesi\n4-çıkış\n*-------------------------------------------*")
ogrenciler = {58:"Mehmet Akif Üner",76:"Ahmet Çakar"}
while True:
print(ana_menu)
seciminiz=input("yukardakilerden yapmak istediğinizi seçiniz: ")
if seciminiz == "3":
for ogrenci in ogrenciler.values():
print(ogrenci)
break
hayır ama 1. kodda istediğimiz kadar ogr ekleyebiliyoruz(yapılacakı atayım) yani ogrecilerin içine girilien değerler fotoğraftaki gibi yazdırılacak
biz bunu seninle çözmüştük ama inadına başka şekillere sokarak yaptığımız çözümü bozuyorsun
ogrenciler[ogr_no]
bu ogr_no
için kullanıcıdan bir numara girmesini istemiştin sözlük içinden o numara ile bilgileri alıyordun
Benim yapmak istediğim sözlükteki tüm bilgileri yazdırması,girilen ogr nin nosuna göre aratıp yazdırması değil
Sözlüğe kaydı yapılan öğrenciyi eklersin.
siniflar = {"9k":{78:"Ahmet Hakan"}}
sinif = input("Öğrenci sınıfını girin:")
isim = input("İsmini girin:")
num = input("Numarayı girin:")
if sinif not in siniflar.keys():
siniflar[sinif] = {}
ogrenciler = siniflar[sinif]
ogrenciler[int(num)] = isim
print(siniflar)
Sözlükle böyle bir şey yapabildim.
Ne yaptığınızı açıklar mısınız burda
İlk başta gerekli bilgileri kullanıcıdan alıyoruz. Sonradan belirtilen sınıfın sözlükte olup olmadığına bakıyoruz. Eğer yoksa ve bu sınıfa değer yazdırmaya çalışırsak keyerror hatası alıyoruz. Bu yüzden öyle bir sınıf yoksa sınıfın değerini boş bir sözlük olarak ayarlıyoruz. Boş sınıf ayarladıktan sonra okul numarasını anahtar olarak belirtip anahtarın değerini de öğrencinin ismi olarak ayarlıyoruz. Eğer önceden o sınıf varsa direkt o sınıfa öğrenciyi ekliyor.
Öncelikle teşekkür ederim.ama kullanıcıdan bilgi almaya gerek yok benim paylaşmadığım 1. komutta zaten bilgileri ekiyoruz.benim isteidğim o bilgileri fotodaki gibi yazdırma.
ana_menu=("*----------------------MENU-----------------*\n1-öğrenci ekleme\n2-öğrenci arama(öğrenci no ile\n3-sınıf listesi\n4-çıkış\n*-------------------------------------------*")
ogrenciler = {"9k":{58:"Mehmet Akif Üner",76:"Ahmet Çakar"}}
while True:
print(ana_menu)
seciminiz=input("yukardakilerden yapmak istediğinizi seçiniz: ")
if seciminiz == "3":
print("Sınıf İsim Numara\n----------------------------------")
for sinif, bilgiler in ogrenciler.items():
for num, isim in bilgiler.items():
print(sinif, isim, num)
break
Merhaba benim yapmak istediğim:Önce 1. Kod ile boş listeye öğrenci bilgileri(adsyd no sınf) eklenecek sonra 3 e basıldığında kaç öğrenci bilgisi eklenmişse bu bilgileri alt alta yazdıaracak
Yapmanız gereken şey kodları birbirine birleştirmek
ana_menu=("*----------------------MENU-----------------*\n1-öğrenci ekleme\n2-öğrenci arama(öğrenci no ile\n3-sınıf listesi\n4-çıkış\n*-------------------------------------------*")
siniflar = {}
while True:
print(ana_menu)
seciminiz=input("yukardakilerden yapmak istediğinizi seçiniz: ")
if seciminiz == "3":
print("Sınıf İsim Numara\n----------------------------------")
for sinif, bilgiler in siniflar.items():
for num, isim in bilgiler.items():
print(sinif, isim, num)
continue
elif seciminiz == "1":
sinif = input("Öğrenci sınıfını girin:")
isim = input("İsmini girin:")
num = input("Numarayı girin:")
if sinif not in siniflar.keys():
siniflar[sinif] = {}
ogrenciler = siniflar[sinif]
ogrenciler[int(num)] = isim
print("Öğrenci kaydedildi!")
Teşekkürler .buna 2. Komutu ekleyebilir misiniz(benim 2.kodu sizle paylaşırım daha kolay uyrlarsınız
.items bir komut mu komutsa ne işe yarıyor