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
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