Python liste içinde listeye input alınmıyor

melihtheman

Femtopat
Katılım
22 Mayıs 2022
Mesajlar
2
Daha fazla  
Cinsiyet
Erkek
Herkese merhaba, kolay gelsin,
Ben şimdi bir üniversite puanlama sistemi programı yapıyorum kısaca şunu başaramadım,
Kullanıcıdan kaç tane okulda ders olacağını alıyorum daha sonra her dersin öğrenci sayısı farklı oluyor, her derse özel mesela matematikte 5 kişi varsa 5 kişinin isim ve numarasini bir listede tutmak istiyorum, fizik mesela 3 kişi onunu da 3 çıktı şöyle olsun istiyorum.

Sirayla matematik ve fizik.
[[melih, ahmet, mehmet], [elif,c eyda, gülcan]] bunlar isimler.
Numaralar da ayni tarz.
Soyle bir kod yazdim ama listeyi ikiye katliyor surekli.





Çıktı da bu şekilde.
Yardımcı olur musunuz?
 
Tam olarak bütün kodları gösterme şansınız varmı?
 
Buradaki olay biraz temel bilgisayar bilimleri ile alakali bir durum. ogrenciName degiskeni bir liste ve bunu baska bir listeye eklediginizde aslinda bunun kopyasini degil direk o degiskeni buraya koyuyorsunuz. Her seferinde listeyi tekrar insert ediyorsunuz ama iterasyonlar arasinda degisken aslinda hep ayni yeri gösteriyor. bir listeyi (icinde baska bir liste yokse eger) baska bir yerde kullanmak istiyorsaniz bunu kopyalayarak ekleyebilirsin.

Python:
ogrenciAdi.insert(ogrenciName.copy())

Bunu deneyebilirsin ilgili noktada.
 
ders=list()
degerlendirme=list()
agirlik=list()
ogrenciAdi=[[]]
ogrenciNo=[[]]
ogrenciSayi=list()
ogrenciName=list()
ogrenciNumber=list()

option=int(input("""
1. Bolum girisi yap
2. Ogrenci girisi yap
3. Guncelle
4. Puanlari gor
5. Cikis
"""))
while option!=5:
if option==1:
bolumAdi=input("Ogrencilerin bolumunu giriniz:")
dersSayi=int(input("Kac tane ders gireceksiniz:"))
for i in range(dersSayi):
lesson=input("Ders adini giriniz:")
ders.insert(i,lesson)
degerSayi=int(input("Kac tane degerlendirme kismi olacak:"))
for j in range(degerSayi):
value=input("Degerlendirme seklinin adini giriniz:")
degerlendirme.insert(j,value)
agirlikYuzde=float(input("Agirlik yuzdesini giriniz giriniz:"))
agirlik.insert(j,agirlikYuzde)
option=int(input("""
1. Bolum girisi yap
2. Ogrenci girisi yap
3. Guncelle
4. Puanlari gor
5. Cikis
"""))
elif option==2:
for k in range(dersSayi):
a="Kac ogrenci",ders[k],"dersini alacak?"
ogrenciNum=int(input(a))
ogrenciSayi.insert(k,ogrenciNum)
print(ogrenciSayi)


h=0
print(ogrenciName)
print(ogrenciNumber)
ogrenciName.clear()
ogrenciNumber.clear()
while h<ogrenciSayi[k]:
name=input("Ogrencinin adini giriniz:")
ogrenciName.append(name)

number=input("Ogrencinin numarasini giriniz:")
ogrenciNumber.append(number)
h+=1
ogrenciAdi.append(ogrenciName)

ogrenciNo.append(ogrenciNumber)
print(ogrenciAdi)
print(ogrenciNo)
continue
Tam olarak bütün kodları gösterme şansınız varmı?
Tam olarak bütün kodları gösterme şansınız varmı?

denedim bu sefer boyle cikti aliyorum surekli listeyi 2 tane yapiyor

sizin dediginizi yaptim cozuldu cok tesekkur ederim
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…