Python While döngüsünü If'ten sonra nasıl durdurulur?

dışarı çıkar derken?
A ile alakası var. Input sana string döndürür. Sen integer ile kıyaslıyorsun. Haliyle sürekli yanlış dönüyor. 1 hiç bir zaman 1 olmuyor senin durumunda. int(input("> ")) doğru seçenek olurdu.
Var. Büyük ihtimall string'i sayıya dönüştrmen gerekiyor. Aldığın input bir metin olarak alıyor. Onu sayıya dönüştürmeyi dene. Başka aklıma bir şey gelmedi.
Dönüştürme yapmadan string e eşitliyorsun.
break kodunu if ten çıkarabilirsin ama döngü her zaman 1 kere çalışır. else if bir şart eklersen döngünü kontrol edebilirsin.
 
Else if lazım değil. a == 1 koşulu hiç bir zaman doğru olmadığı için if'in içine hiç giremiyordu. if'in içine break eklemesi yeterli şuan int cast ettikten sonra.
Sonradan farkettim sizin yazdıklarınızla, else if yapıp a == 1 olmazsa başka bir şart sağlayabilir.
 
Öncelikle, Python'da input() fonksiyonu kullanıcı yanıtını string formunda döndürür.
Bu ne demek? Aşağıdaki kodu düşün:
Python:
girdi = input(">>> ")
print(type(girdi))
Kullanıcı bir giriş yapacak ve bu giriş girdi değişkenine kaydedilecek. Ardından type() kullanarak bu girdinin veri tipini öğreneceğiz ve print() kullanarak yazdıracağız.
Yukarıdaki kodu çalıştırıp 1 girişini yaparsan <class 'str'> çıktısını alırsın. Bu durum input() fonksiyonunun string verisi döndürdüğüne bir örnek.

Peki koddaki problem ne? a = input("> ") bölümünde alacağın girdiyi a değişkenine kaydedeceksin, yukarıda da gördüğümüz üzere a bir string verisi taşıyacak. Alttaki if durumunda ise if a == 1: koşulunu öne sürmüşsün. a değişkeni bir string iken 1 integer değer ifade ediyor. Başka bir deyişle, bir metinle bir sayıyı karşılaştırmaya çalışıyorsun. Elma = 9 demek gibi bir şey bu.

Peki nasıl düzeltiriz? Aslında bunun iki basit yolu var. Ana mantık, karşılaştıracağın ifadeler aynı veri tipinde olmalı. Elma = Elma veya 1 = 1 formuna dönüştürmelisin. Bunun için de ya a'yı integer'a çevireceksin ya da 1'i string'e. if ifadesini if int(a) == 1: şeklinde düzenlersen iki veri de integer sınıfında olur ve karşılaştırabilirsin, aynı şekilde if a == "1": formunda düzenlersen iki veri de string sınıfında olur ve yine karşılaştırabilirsin. Hangisini seçeceğin sana ve kodun devamına bağlı.

Diğer soruna gelince, belirli bir koşul sağlandıktan sonra döngünün durmasını istiyorsak break ifadesini kullanırız. Yorum satırının yerine veya if bloğunun en altına break yazarak deneyebilirsin.

Aklına takılan herhangi bir şey varsa sormaktan çekinme.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…