# Verilen sayıyı kontrol eder. Eğer negatif/pozitif sayı durumuna göre # Sayıyı veya False döndürür. def kontrol(sayi): if sayi.startswith('-'): sayi = sayi[1:] if sayi.isdecimal(): return int(sayi) else: return False sinif_mevcudu = int(input('Lütfen sınıf mevcudunu giriniz: ')) ogrenciler = [] sinif_toplam_notu = 0 while True: # Eğer sınıv mecudu öğrenci sayısından çok ise if sinif_mevcudu > len(ogrenciler): # Öğrenci adı doğru girilene kadar while döngüsü devam eder while True: ogrenci_adi = input('Öğrenci adı giriniz: ') # FOR döngüsü öğrenci adında boşluk ve harften oluştuğunu kontrol ediyor for harf in ogrenci_adi: if harf.isspace() or harf.isalpha(): continue else: print('Öğrenci adı olarak sadece harf veya boşluk girebilirsiniz') break else: print('Öğrenci adını doğru girdiniz. Teşekkürler') break # Öğrenci no doğru girilene kadar while döngüsü devam eder while True: ogrenci_no = input('Öğrenci no giriniz: ') ogrenci_no = kontrol(ogrenci_no) if ogrenci_no: break else: print('Öğrenci no sadece sayı kabul edebilir') # Vize notu doğru girilene kadar while döngüsü devam eder while True: vize_notu = input('Vize notu giriniz: ') vize_notu = kontrol(vize_notu) if vize_notu: break else: print('Vize notu sadece sayı kabul edebilir') # Final notu doğru girilene kadar while döngüsü devam eder while True: final_notu = input('Final notu giriniz: ') final_notu = kontrol(final_notu) if final_notu: break else: print('Final notu sadece sayı kabul edebilir') # öğrenci sözlüğümüzü oluşturalım ogrenci = { 'adi': ogrenci_adi, 'no': ogrenci_no, 'vize': vize_notu, 'final': final_notu, 'sonuc': (vize_notu * 0.3) + (final_notu * 0.7) } # toplam sınıf notunu sürekli öğrenci sonuc notunu üzerine ekleyerek buluyoruz sinif_toplam_notu += ogrenci['sonuc'] # öğrenciyi öğrenciler listsine ekleyelim ogrenciler.append(ogrenci) print('Öğrenci başarıyla eklendi') else: print('Öğrenci sayısı tamamlandı. Ortalamalar hesaplanıyor..') break sinif_ortalamasi = sinif_toplam_notu / len(ogrenciler) print('Sınıf Ortalaması: ', sinif_ortalamasi) print('Öğrenci Sayısı: ', len(ogrenciler)) print('------------------------') for ogrenci in ogrenciler: if ogrenci['sonuc'] > sinif_ortalamasi: print(ogrenci['adi'], ogrenci['sonuc']) print('Öğrenci sınıfı başarıyla geçti') else: print(ogrenci['adi'], ogrenci['sonuc']) print('Öğrenci ne yazkki kaldı')