Belirli bir koşula göre fonksiyonu baştan çalıştırmak

def Notlari_gir():
   for i in range(ogr_sayisi):
       hash = {}
       global ortalama
       hash["vize_1"] = float(input("{} İsimli Öğrencinin Vize_1 : ".format(ogr[i])))
       hash["vize_2"] = float(input("{} İsimli Öğrencinin Vize_2 : ".format(ogr[i])))
       hash["final"] = float(input("{} İsimli Öğrencinin Final : ".format(ogr[i])))
       if "vize_1"or"vize_2"or"final">100:
           print("Değer 100'den büyük olamaz")
           #burada fonksiyonu yeniden çalıştırma kodu olması lazım.
         
           
           
       ortalama = round(sum(hash[_not] * yuzde for _not, yuzde in zip(["vize_1", "vize_2", "final"], [25/100, 35/100, 40/100])), 2)
       ort.append(ortalama)
       arr.append(hash)

Sorum şu 100 den büyük değer girilmesin istiyorum girildiği zaman ise fonksiyon 0’dan çalışsın.

Hatalı kod, parçalara ayırdığımızda kodunuz şu şekilde:
if "vize_1" or if "vize_2" or if "final" > 100:
Burada “vize_1” ve “vize_2” nin 100’den büyük olup olmadığını kontrol etmiş olmuyorsunuz.
Ayrıca bir sözlüğe ait anahtarları o şekilde kullanamazsınız. Sözlüğü belirtmeniz lazım. hash["final"] gibi.

if hash["vize_1"] > 100 or hash["vize_2"] > 100 or hash["final"] > 100:

Bir fonksiyonu her zaman nasıl çağırıyorsanız öyle :slight_smile:

if hash["vize_1"] > 100 or hash["vize_2"] > 100 or hash["final"] > 100:
    Notlari_gir()
2 Beğeni

Kod çalışıyor ama garip çıktı çok garip.
Öğrenci Sayısını Giriniz:2

1-Numaralı  Öğrencinin İsmini Giriniz:Salih

2-Numaralı  Öğrencinin İsmini Giriniz:Korkmaz

Salih İsimli Öğrencinin Vize_1 : 100

Salih İsimli Öğrencinin Vize_2 : 102

Salih İsimli Öğrencinin Final : 100
Değer 100'den Büyük  Olamaz Tekrar Giriniz.

Salih İsimli Öğrencinin Vize_1 : 90

Salih İsimli Öğrencinin Vize_2 : 50

Salih İsimli Öğrencinin Final : 70

Korkmaz İsimli Öğrencinin Vize_1 : 50

Korkmaz İsimli Öğrencinin Vize_2 : 70

Korkmaz İsimli Öğrencinin Final : 40

Korkmaz İsimli Öğrencinin Vize_1 : 70

Korkmaz İsimli Öğrencinin Vize_2 : 10

Korkmaz İsimli Öğrencinin Final : 50

CC

DC
[{'isim': 'Salih', 'notlar': {'vize_1': 90.0, 'vize_2': 50.0, 'final': 70.0}, 'Ortalama': 68.0, 'Harf Notu': 'CC'}]
[{'isim': 'Korkmaz', 'notlar': {'vize_1': 50.0, 'vize_2': 70.0, 'final': 40.0}, 'Ortalama': 53.0, 'Harf Notu': 'DC'}]

if hash[“vize_1”] > 100 or hash[“vize_2”] > 100 or hash[“final”] > 100:
continue

bide bu şekilde deneyin isterseniz

Yok break komutu çözdü sorunu.

1 Beğeni