🚀 Online Kendi Sınavını Oluştur ve Çöz!

Python if else kullanımı Test 1

Soru 01 / 10

Bir Python programında kullanıcıdan alınan yaş değerine göre "reşit" veya "reşit değil" mesajı yazdırmak isteyen bir sosyolog, aşağıdaki kodu yazıyor. Ancak kod her durumda "reşit" yazdırıyor. Bu sorunu çözmek için hangi değişiklik yapılmalıdır?

yaş = input("Yaşınızı giriniz: ")
if yaş > 18:
    print("reşit")
else:
    print("reşit değil")

A) input() yerine int(input()) kullanılmalı
B) if yaş > 18: yerine if yaş >= 18: kullanılmalı
C) print fonksiyonları değiştirilmeli
D) else kısmı kaldırılmalı

Merhaba öğrenciler, bu soruyu adım adım inceleyerek, Python'daki veri tiplerinin önemini ve karşılaştırma işlemlerini nasıl doğru yapabileceğimizi öğreneceğiz.

Sorun Nedir?

Kodun her durumda "reşit" yazdırmasının temel nedeni, input() fonksiyonunun kullanıcıdan aldığı değeri metin (string) olarak algılamasıdır. Bu durumda, sayısal bir karşılaştırma yapmak yerine metinsel bir karşılaştırma yapılıyor ve "18" metni ile karşılaştırıldığında, çoğu durumda "büyük" olarak değerlendiriliyor.

Çözüm Adımları:

  • Adım 1: Veri Tipini Dönüştürme
  • input() fonksiyonundan gelen değeri sayısal bir değere (integer) dönüştürmeliyiz. Bu, int() fonksiyonu kullanılarak yapılabilir.

  • Adım 2: Dönüştürülmüş Değeri Kullanma
  • yaş değişkenine atanan değeri int(input("Yaşınızı giriniz: ")) şeklinde değiştirerek, kullanıcının girdiği değeri doğrudan integer'a dönüştürelim.

  • Adım 3: Karşılaştırmayı Yapma
  • if yaş > 18: ifadesi, artık sayısal bir karşılaştırma yapacak. Eğer yaş değişkeninin değeri 18'den büyükse "reşit", değilse "reşit değil" yazdırılacak.

Doğru Kod:

İşte düzeltilmiş kod:

yaş = int(input("Yaşınızı giriniz: "))
if yaş > 18:
    print("reşit")
else:
    print("reşit değil")

Diğer Seçeneklerin Neden Yanlış Olduğu:

  • B) if yaş >= 18: kullanılmalı: Bu değişiklik, 18 yaşındakilerin de "reşit" olarak kabul edilmesini sağlar. Ancak temel sorunu, yani veri tipi sorununu çözmez.
  • C) print fonksiyonları değiştirilmeli: print fonksiyonlarında bir hata yok, bu yüzden değiştirilmeleri sorunu çözmez.
  • D) else kısmı kaldırılmalı: else kısmının kaldırılması, 18'den küçük yaşlarda hiçbir şey yazdırılmamasına neden olur, bu da istenen davranış değildir.

Cevap A seçeneğidir.

↩️ Soruya Dön
1 2 3 4 5 6 7 8 9 10
Ana Konuya Dön:
Geri Dön