Çözüldü Python Kodun çalışması için ne yapılması gerekiyor?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

ouxx

Centipat
Katılım
16 Eylül 2024
Mesajlar
83
Daha fazla  
Cinsiyet
Erkek
Bir rakam seçtikten sonra 100'e kadar sadece 3'e bölünenleri yazmasını istiyorum fakat başlattığımda +1 ile 102'ye kadar yazdırıyor. Ne yapmam/neyi değiştirmem lazım? (normal şekilde yaptırmayı biliyorum input ile yaptırmaya çalışıyorum. İnput ile gösterirseniz sevinirim.)
 

Dosya Ekleri

  • Ekran görüntüsü 2024-09-21 191822.png
    Ekran görüntüsü 2024-09-21 191822.png
    112,7 KB · Görüntüleme: 67
Çözüm
Bir rakam seçtikten sonra o rakamdan başlayarak 100'e kadar üçe bölünebilenleri istiyorsun, doğru anlıyorsam?

Python:
number = int(input("Choose a number: "))

while number < 100:
    if number % 3 == 0:
        print(number)
    number += 1

while True: bad practice. Kod okunurluğunu düşürür. Bir şeyi while True ile yapıyorsan, garanti onu yapmanın farklı bir yolu da vardır. Kimsenin sonsuz loop'a ihtiyacı olduğunu sanmıyorum. Mesela break etmek için kullandığın if statement'ı neden while'a statement olarak koymuyorsun benim örnekteki yaptığım gibi?

Bir diğer mevzu;
Python:
if number > 100:
    break
Bu blok normalde 101'de çalışacak ilk defa. Ancak senin kodundaki mantık hatası yüzünden 101'de de çalışmayacak çünkü sen eğer sayı üçe tam bölünemiyorsa devam et diyorsun. (101 / 3 = 33.67) Dolayısıyla 102'de çalışacak. 102 tam olarak 3'e bölünebildiğinden ilk blok devreye girmiyor. İlk blok devreye girmediğinden ve 102, 100'den büyük olduğundan, break atıyor. Koşulu en başından while'a koymuş olsaydın, bu hata çıkmazdı mesela.

Daha iyisi var, for loop'u kullanabilirdin;
Python:
number = int(input("Choose a number: "))

for i in range(number, 100):
    if i % 3 == 0:
        print(i)
Aynı işi yapacak yukarıda verdiğim kodla.

Yeni başlayan biri için while True: kabul edilebilir bir kullanım olabilir ancak diğer konularda mantık kurabiliyor olman lazım dilden ziyade. Burada dille alakalı bir problem değil, mantıksal bir problem var kısaca.
rakam = int(input("rakam: "))

for i in range(rakam, 101):
if i % 3 == 0:
print(i)


Eğer döngü 100'den fazla sayılar yazdırıyorsa, rakam kısmındaki 101 sayısının dahil etmemelisin.
 
Kod:
number = int(input("Choose a number: "))

while True:
 if number % 3 == 0:
 print(number)
 number += 1
 if number > 100:
 break

Kodun tamamını görmedim ama şu şekil dener misiniz düzelirse açıklamasını yapacağım.
 
Bir rakam seçtikten sonra o rakamdan başlayarak 100'e kadar üçe bölünebilenleri istiyorsun, doğru anlıyorsam?

Python:
number = int(input("Choose a number: "))

while number < 100:
    if number % 3 == 0:
        print(number)
    number += 1

while True: bad practice. Kod okunurluğunu düşürür. Bir şeyi while True ile yapıyorsan, garanti onu yapmanın farklı bir yolu da vardır. Kimsenin sonsuz loop'a ihtiyacı olduğunu sanmıyorum. Mesela break etmek için kullandığın if statement'ı neden while'a statement olarak koymuyorsun benim örnekteki yaptığım gibi?

Bir diğer mevzu;
Python:
if number > 100:
    break
Bu blok normalde 101'de çalışacak ilk defa. Ancak senin kodundaki mantık hatası yüzünden 101'de de çalışmayacak çünkü sen eğer sayı üçe tam bölünemiyorsa devam et diyorsun. (101 / 3 = 33.67) Dolayısıyla 102'de çalışacak. 102 tam olarak 3'e bölünebildiğinden ilk blok devreye girmiyor. İlk blok devreye girmediğinden ve 102, 100'den büyük olduğundan, break atıyor. Koşulu en başından while'a koymuş olsaydın, bu hata çıkmazdı mesela.

Daha iyisi var, for loop'u kullanabilirdin;
Python:
number = int(input("Choose a number: "))

for i in range(number, 100):
    if i % 3 == 0:
        print(i)
Aynı işi yapacak yukarıda verdiğim kodla.

Yeni başlayan biri için while True: kabul edilebilir bir kullanım olabilir ancak diğer konularda mantık kurabiliyor olman lazım dilden ziyade. Burada dille alakalı bir problem değil, mantıksal bir problem var kısaca.
 
Çözüm
Bir rakam seçtikten sonra o rakamdan başlayarak 100'e kadar üçe bölünebilenleri istiyorsun, doğru anlıyorsam?

Python:
number = int(input("Choose a number: "))

while number < 100:
    if number % 3 == 0:
        print(number)
    number += 1

while True: bad practice. Kod okunurluğunu düşürür. Bir şeyi while True ile yapıyorsan, garanti onu yapmanın farklı bir yolu da vardır. Kimsenin sonsuz loop'a ihtiyacı olduğunu sanmıyorum. Mesela break etmek için kullandığın if statement'ı neden while'a statement olarak koymuyorsun benim örnekteki yaptığım gibi?

Bir diğer mevzu;
Python:
if number > 100:
    break
Bu blok normalde 101'de çalışacak ilk defa. Ancak senin kodundaki mantık hatası yüzünden 101'de de çalışmayacak çünkü sen eğer sayı üçe tam bölünemiyorsa devam et diyorsun. (101 / 3 = 33.67) Dolayısıyla 102'de çalışacak. 102 tam olarak 3'e bölünebildiğinden ilk blok devreye girmiyor. İlk blok devreye girmediğinden ve 102, 100'den büyük olduğundan, break atıyor. Koşulu en başından while'a koymuş olsaydın, bu hata çıkmazdı mesela.

Daha iyisi var, for loop'u kullanabilirdin;
Python:
number = int(input("Choose a number: "))

for i in range(number, 100):
    if i % 3 == 0:
        print(i)
Aynı işi yapacak yukarıda verdiğim kodla.

Yeni başlayan biri için while True: kabul edilebilir bir kullanım olabilir ancak diğer konularda mantık kurabiliyor olman lazım dilden ziyade. Burada dille alakalı bir problem değil, mantıksal bir problem var kısaca.
Teşekkürlerimi sunarım. Çok açıklayıcı anlatmışsınız. while True ifadesini kullanma sebebim kodlamaya yeni başlamış olmam fakat dediklerinizi dikkate alacağım. Hayırlı forumlar.
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Geri
Yukarı