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.

1653296119942.png


1653296157563.png


Çıktı da bu şekilde.
Yardımcı olur musunuz?
 
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.

Eki Görüntüle 1396860

Eki Görüntüle 1396861

Çı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ı?
1653300550801.png

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.
denedim bu sefer boyle cikti aliyorum surekli listeyi 2 tane yapiyor
1653300737144.png

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.
sizin dediginizi yaptim cozuldu cok tesekkur ederim
 
Son düzenleme:

Geri
Yukarı