merhaba arkadaşlarım abilerim.
programlamada yeniyim. eğer çok saçma birşey soruyorsam affedin.
aşağıdaki kodda while çalıştırmak istiyorum. yani yaş 0 girildiğinde programı break yapsın, yaş 0 dan büyük olduğunda programı her seferinde baştan başlatsın istiyorum ama kendim beceremedim.
eğer yardımcı olursanız çok mutlu olurum.
x = input(“yasinizi giriniz:”)
print(“yaşınız”, x)
a = int(input(“a:”))
b = int(input(“b:”))
c = int(input(“c:”))
print(“toplam:”, a+b+c)
print(“çarpım:”, abc)
while True:
x = input(“yasinizi giriniz:”)
print(“yaşınız”, x)
# aldığımız değeri sayıya çeviriyoruz
x_int = int(x)
# eğer sayı 0 dan büyükse aşağıdakileri yap
if x_int > 0:
a = int(input(“a:”))
b = int(input(“b:”))
c = int(input(“c:”))
print(“toplam:”, a+b+c)
print(“çarpım:”, abc)
# Değilse break et
else:
print('yaşınız 0 veya daha küçük olamaz!')
break
Bu işleri kimse annesinin karnında öğrenmedi Saçma olsun ya da olmasın istediğiniz her soruyu sorun. Yeter ki öğrenmek için siz de çabalayın.
Amacınızı bu döngü aracılığıyla gerçekleştirebilirsiniz:
while True:
x = int(input("Yaş giriniz:" ))
if x > 0:
pass #yaş sıfırdan büyük olduğu zaman yapacağınız işlemleri bu indente yazabilirsiniz.
else:
print("yaş 0'dan büyük olmalıdır.")
break
unnick, kersa oyun ve sonsuz hocam çok tesekkür ederim. iki çözümü de her noktasını anlayana kadar defalarca uygulayacağm. sonsuz hocam çarpımı heralde foruma kopyalarken sildi. ama çok çok teşekkür ederim. bu şekilde de silinebilip hata olabilceğini görmüş oldum. çok sağulun
İkisi de aynı mantık ile bir döngü başlatıyor. İkisinin de farklı şeyler olduğunu düşünmeyin if bloklarının çalışması için ne gerekiyor ? Yazdığınızın koşulun True olması gerekiyor öyle değil mi ? while döngüsünde de aynı mantık. Yazdığınız koşul True olduğu sürece döngü açık oluyor.
Mesela:
while 5==5:
pass
while True:
pass
Bu iki ifade de aynı anlama geliyor Çünkü 5 daima 5e eşittir ve daima True idir. İkinci ifadede de koşul yazmak yerine direkt boolean değer yazdık ve dolayısıyla bu da daima Trueya eşit olacaktır.
while döngüsünü sürekli olarak boolean değerlerle kurmak size daha cazip gelebilir belki bu açtığınız konudan sonra. Fakat öyle olmasın. Çünkü boolean bir değer kullandığınız zaman döngüyü durdurmanız için break deyimine ihtiyaç duyuyorsunuz ve bu da yazacağınız kodları bir miktar arttırabiliyor, okunaklılığı azaltabiliyor.
Fakat şöyle bir şey yaparsanız mesela hiç break deyimine ihtiyaç duymayacaksınız:
count = 0
while count <= 100:
count += 1
count <= 100 koşulu count değişkeni 100 olana kadar True döndüreceği için döngü bir süre sonra kendi kendine kırılacaktır ve break deyimine ihtiyaç duymacaksınız
Doğrudan boolean bir değerle döngü kurmanın da bir avantajı olabiliyor.
Mesela size yazdığım koddan örnek vereyim:
else bloğuna bakınız. Bu blok çalıştığı zaman döngü kırılacak fakat döngü kırılmadan önce print() fonksiyonu çalıştırılacak. Bu sayede kırılma anını biraz daha özelleştirmiş oluyoruz.
Kıscası iki yöntemden birisi duruma göre en iyi seçenek olacaktır. Daima birine bağımlı kalmayınız.