Çözüldü Python Else komutu ile istenilen noktaya dönmek

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
3 Nisan 2020
Mesajlar
1.941
Çözümler
4
Yer
Aksaray
Daha fazla  
Cinsiyet
Erkek
Selamlar. Kendimce paslanmamak için basit projeler yapıyorum. Hesap makinesi gibi basit şeyler. Bugün de yazılı ortalaması hesaplamak için biraz kod yazdım.
Kod;

Python:
while True:
    print("Hangi ders ortalamanızı hesaplayacaksınız?(Türkçe, Matematik, Fen, Sosyal.. Dersin ismini yazınız.)")
    secilenders = input("Ders adını yazınız: ")
    if secilenders == ("Matematik"):
        print("Matematik yazılı notunu giriniz.(En az 0, en fazla 100 girebilirsiniz.)")

        matnotu1 = int(input("1. Matematik puanınız: "))
        if matnotu1 >= 0 and matnotu1 <= 100:
            print()
        else:
            print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")
            continue





        matnotu2 = int(input("2. Matematik puanınız: "))
        if matnotu2 >= 0 and matnotu2 <= 100:
            print()
        else:
            continue
            print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")

    print("Matematik ortalamanız:", (matnotu2+matnotu1)/2 )

Gördüğünüz gibi kod bu. Kodda kullanıcı notunu 0'dan aşağı veya 100'den yukarı yaparsa else komutunu çalıştırıyor. Fakat ardından yazdığım Türkçe notlarını sorma kısmına geçiyor(Fazlalık olmaması için kodun devamını buraya yazmadım.). Ben bunu istemiyorum. Else çalışırsa(yani 0'dan aşağı veya 100'den yukarı değer yazarsa) Hata mesajı yazdırıp tekrardan hatalı sayı girilen kodun çalıştırılmasını istiyorum. Yani örneğin "matnotu2" kısmına 200 yazınca hata mesajı çıkıyor, fakat ardından print yazısı çıkıyor. Ben printi yazdırmayıp tekrardan "matnotu2" kısmındaki kullanıcıdan değer almayı, int(input()) kısmını çalıştırmak istiyorum. Şu anda kodun tamamında continue kodu ile en başa "Hani ders ortalamanızı hesaplayacaksınız?" Kısmına döndürüyor. Umarım sorunu anlatabilmişimdir. Yardımcı olur musunuz?
 
Son düzenleyen: Moderatör:
Çözüm
While döngüsü içine almalısın.

Python:
matnotu = -1
while not (matnotu1 >= 0 and matnotu1 <= 100):
     matnotu1 = int(input("1. Matematik puanınız: "))
          if matnotu1 >= 0 and matnotu1 <= 100:
               print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")
Selam. Kendimce paslanmamak için basit projeler yapıyorum. Hesap makinesi gibi basit şeyler. Bugün de yazılı ortalaması hesaplamak için biraz kod yazdım.
Kod;

Python:
while True:
 print("Hangi ders ortalamanızı hesaplayacaksınız?(Türkçe, Matematik, Fen, Sosyal.. Dersin ismini yazınız.)")
 secilenders = input("Ders adını yazınız: ")
 if secilenders == ("Matematik"):
 print("Matematik yazılı notunu giriniz.(En az 0, en fazla 100 girebilirsiniz.)")

 matnotu1 = int(input("1. Matematik puanınız: "))
 if matnotu1 >= 0 and matnotu1 <= 100:
 print()
 else:
 print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")
 continue.

 matnotu2 = int(input("2. Matematik puanınız: "))
 if matnotu2 >= 0 and matnotu2 <= 100:
 print()
 else:
 continue.
 print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")

 print("Matematik ortalamanız:", (matnotu2+matnotu1)/2 )

Gördüğünüz gibi kod bu. Kodda kullanıcı notunu 0'dan aşağı veya 100'den yukarı yaparsa else komutunu çalıştırıyor. Fakat ardından yazdığım Türkçe notlarını sorma kısmına geçiyor(fazlalık olmaması için kodun devamını buraya yazmadım.). Ben bunu istemiyorum. Else çalışırsa(yani 0'dan aşağı veya 100'den yukarı değer yazarsa) hata mesajı yazdırıp tekrardan hatalı sayı girilen kodun çalıştırılmasını istiyorum. Yani örneğin "matnotu2" kısmına 200 yazınca hata mesajı çıkıyor, fakat ardından print yazısı çıkıyor. Ben printi yazdırmayıp tekrardan "matnotu2" kısmındaki kullanıcıdan değer almayı, int(input()) kısmını çalıştırmak istiyorum. Şu anda kodun tamamında continue kodu ile en başa "Hani ders ortalamanızı hesaplayacaksınız?" Kısmına döndürüyor. Umarım sorunu anlatabilmişimdir. Yardımcı olur musunuz?

Elif metodunu biliyor musunuz?
 
While döngüsü içine almalısın.

Python:
matnotu = -1
while not (matnotu1 >= 0 and matnotu1 <= 100):
     matnotu1 = int(input("1. Matematik puanınız: "))
          if matnotu1 >= 0 and matnotu1 <= 100:
               print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")
 
Çözüm
Selamlar. Kendimce paslanmamak için basit projeler yapıyorum. Hesap makinesi gibi basit şeyler. Bugün de yazılı ortalaması hesaplamak için biraz kod yazdım.
Kod;

Python:
while True:
    print("Hangi ders ortalamanızı hesaplayacaksınız?(Türkçe, Matematik, Fen, Sosyal.. Dersin ismini yazınız.)")
    secilenders = input("Ders adını yazınız: ")
    if secilenders == ("Matematik"):
        print("Matematik yazılı notunu giriniz.(En az 0, en fazla 100 girebilirsiniz.)")

        matnotu1 = int(input("1. Matematik puanınız: "))
        if matnotu1 >= 0 and matnotu1 <= 100:
            print()
        else:
            print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")
            continue





        matnotu2 = int(input("2. Matematik puanınız: "))
        if matnotu2 >= 0 and matnotu2 <= 100:
            print()
        else:
            continue
            print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")

    print("Matematik ortalamanız:", (matnotu2+matnotu1)/2 )

Gördüğünüz gibi kod bu. Kodda kullanıcı notunu 0'dan aşağı veya 100'den yukarı yaparsa else komutunu çalıştırıyor. Fakat ardından yazdığım Türkçe notlarını sorma kısmına geçiyor(Fazlalık olmaması için kodun devamını buraya yazmadım.). Ben bunu istemiyorum. Else çalışırsa(yani 0'dan aşağı veya 100'den yukarı değer yazarsa) Hata mesajı yazdırıp tekrardan hatalı sayı girilen kodun çalıştırılmasını istiyorum. Yani örneğin "matnotu2" kısmına 200 yazınca hata mesajı çıkıyor, fakat ardından print yazısı çıkıyor. Ben printi yazdırmayıp tekrardan "matnotu2" kısmındaki kullanıcıdan değer almayı, int(input()) kısmını çalıştırmak istiyorum. Şu anda kodun tamamında continue kodu ile en başa "Hani ders ortalamanızı hesaplayacaksınız?" Kısmına döndürüyor. Umarım sorunu anlatabilmişimdir. Yardımcı olur musunuz?
Python:
while true:
matnotu1 = int(input("1. Matematik puanınız: "))
        if matnotu1 >= 0 and matnotu1 <= 100:
            print()
            break
        else:
            print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")
            continue
Böyle yazabilirsiniz. Python'un yazım kurallarını bilmediğimden yanlışlık olabilir ama mantık böyle.
 
Elif metodunu biliyor musunuz?
elif ile kod yürütmesi yukarı alınamaz. Kaç kez elif varsa o kadar ilerler, sonra kod yürütmesine devam eder. Bir ihtimal 3 kez elif ile kontrol edip kullanıcı yine de inatla doğru veri girmiyorsa programdan çıkılabilir. (KS'nin istemediği bir durum)
 
Elif metodunu biliyor musunuz?
Eliften kaç kez yazarsam o kadar ileri gidecek sadece. 5 kez yazsam, 6 kez yanlış yaza 6. da patlak verecek. Ayrıca kodda kötü durmasını da istiyor değilim.

While döngüsü içine almalısın.

Python:
matnotu = -1
while not (matnotu1 >= 0 and matnotu1 <= 100):
     matnotu1 = int(input("1. Matematik puanınız: "))
          if matnotu1 >= 0 and matnotu1 <= 100:
               print("Geçersiz giriş. 0 ile 100 arasında bir sayı girin.")
Hocam çook teşekkür ederim. Bir süredir sadece bunu çözmeye çalışıyordum. Tekrardan Allah razı olsun.
 

Technopat Haberler

Yeni konular

Geri
Yukarı