Çözüldü Python kod dizisini tekarlama

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

doruk.k

Decapat
Katılım
29 Nisan 2023
Mesajlar
104
Çözümler
1
Daha fazla  
Sistem Özellikleri
MB: Asus H610M-E D4 CPU: Intel i3 12100f GPU: Asus GeForce RTX 3050 OC 8GB RAM: Corsair Vengeance LPX 8GB 3200Mhz x2 SSD: MLD M300 500GB
Cinsiyet
Erkek
def ortalama_hesaplayici():
not1 = int(input('birinci notunuzu giriniz: '))
not2 = int(input('ikinci notunuzu giriniz: '))
pnot1 = int(input('birinci performans notunuzu giriniz: '))
pnot2 = int(input('ikinci performans notunuzu giriniz: '))
total = (not1+not2+pnot1+pnot2) / (4)

Bu şekil bir kod var kişinin dört notunun kabaca ortalamasını hesaplıyor. Bunu 20 kişi için uygulatmaya çalıştım fakat bunu döngüye sokmaya çalıştığımda bir şeklilde başaramadım. For i in Range'i denedim falan yani tam olarak nasıl yapılcağını bilmiyorum. Yapmaya çalıştığım 20kişinin notunu bu şekilde hesaplayıp en son ekrana 20 kişinin ortalamasının ortalamasını hesaplamak yani sınıf ortalamasını hesaplamasını sağlamak. Ne gibi bir method kullanabilirim?
 
Çözüm
Yok kastettiğim hani daha basit kodlarla daha basit fonksiyonla yani mümkünse.
Notları tek satırda alabiliriz.
Python:
ortalamalar = []
for i in range(20):
    notlar = input(f"{i + 1}. Öğrencinin notlarını giriniz (örnk. 87 85 91 92): ")
    ortalamalar.append(sum([int(n) for n in notlar.split(" ")]) / 4)
print(f"Sınıf ortalaması {sum(ortalamalar) / 20}")
def ortalama_hesaplayici():
not1 = int(input('birinci notunuzu giriniz: '))
not2 = int(input('ikinci notunuzu giriniz: '))
pnot1 = int(input('birinci performans notunuzu giriniz: '))
pnot2 = int(input('ikinci performans notunuzu giriniz: '))
total = (not1+not2+pnot1+pnot2) / (4)

Bu şekil bir kod var kişinin dört notunun kabaca ortalamasını hesaplıyor. Bunu 20 kişi için uygulatmaya çalıştım fakat bunu döngüye sokmaya çalıştığımda bir şeklilde başaramadım. For i in Range'i denedim falan yani tam olarak nasıl yapılcağını bilmiyorum. Yapmaya çalıştığım 20kişinin notunu bu şekilde hesaplayıp en son ekrana 20 kişinin ortalamasının ortalamasını hesaplamak yani sınıf ortalamasını hesaplamasını sağlamak. Ne gibi bir method kullanabilirim?
def ortalama_hesaplayici():
not1 = int(input('birinci notunuzu giriniz: '))
not2 = int(input('ikinci notunuzu giriniz: '))
pnot1 = int(input('birinci performans notunuzu giriniz: '))
pnot2 = int(input('ikinci performans notunuzu giriniz: '))
ortalama = (not1 + not2 + pnot1 + pnot2) / 4
return ortalama

count = 0
while True:
ortalama = ortalama_hesaplayici()
if ortalama == 'q':
break
count += 1
if count >= 20:
break
 
Python:
ortalamalar = []
sinif_mevcudu = 20
for i in range(sinif_mevcudu):
    print(f"------{i + 1}. kişi------")
    not1 = int(input('birinci notunuzu giriniz: '))
    not2 = int(input('ikinci notunuzu giriniz: '))
    pnot1 = int(input('birinci performans notunuzu giriniz: '))
    pnot2 = int(input('ikinci performans notunuzu giriniz: '))
    ortalamalar.append((not1+not2+pnot1+pnot2) / 4)
print(f"sinif ortalamasi: {sum(ortalamalar) / sinif_mevcudu}")
 
Python:
ortalamalar = []
sinif_mevcudu = 20.
for i in range(sinif_mevcudu):
 print(f"------{i + 1}. kişi------")
 not1 = int(input('birinci notunuzu giriniz: '))
 not2 = int(input('ikinci notunuzu giriniz: '))
 pnot1 = int(input('birinci performans notunuzu giriniz: '))
 pnot2 = int(input('ikinci performans notunuzu giriniz: '))
 ortalamalar.append((not1+not2+pnot1+pnot2) / 4)
print(f"sinif ortalamasi: {sum(ortalamalar) / sinif_mevcudu}")

Teşekkürler kod sorunsuz çalışıyor ama fakat daha baside indirgenmiş bir şekli var mıdır ? Ya da mümkün mü yani?
 
Yok kastettiğim hani daha basit kodlarla daha basit fonksiyonla yani mümkünse.
Notları tek satırda alabiliriz.
Python:
ortalamalar = []
for i in range(20):
    notlar = input(f"{i + 1}. Öğrencinin notlarını giriniz (örnk. 87 85 91 92): ")
    ortalamalar.append(sum([int(n) for n in notlar.split(" ")]) / 4)
print(f"Sınıf ortalaması {sum(ortalamalar) / 20}")
 
Çözüm

Technopat Haberler

Geri
Yukarı