# Girdi: kullanıcıdan satır okumak, sayıya çevirmek ve okunanla hesap yapmak # # Bu program beş satır okur: ad, doğum yılı, kilo, boy ve kitap sayısı. # IDE'de girdiler aynı klasördeki girdi.txt dosyasından gelir; her satır, # kullanıcının yazıp Enter'a bastığı bir cevap gibidir. # Uçbirimde çalıştırırsan soruları görür, cevapları kendin yazarsın. kullan kaba.sistem # Soruları yalnız karşıda gerçekten bir insan varsa yazdıralım. Girdi bir # dosyadan geliyorsa sorular kimseye hitap etmez, çıktıyı kalabalıklaştırır. # etkilesimli_mi() bunu söyler: dogru ise klavyeden, yanlis ise dosyadan okuyoruz. etkilesimli = konsol.etkilesimli_mi() # ── 1. Bir satır metin okumak ───────────────────────────────── # konsol.yaz() yazdir() gibidir ama satırı bitirmez; imleç sorunun yanında kalır. eger etkilesimli: konsol.yaz("Adınız: ") # satir_oku() bir satır okur. Ama girdi bitmiş de olabilir; bu yüzden sonuç # "ya bir satır ya hiçbir şey" taşıyan bir kutudur. deger_veya("misafir") # kutuda satır varsa onu, yoksa "misafir"i verir. kirp() baştaki ve sondaki # boşlukları atar. ad = konsol.satir_oku().deger_veya("misafir").kirp() # ── 2. Bir tam sayı okumak ve denetlemek ────────────────────── eger etkilesimli: konsol.yaz("Doğum yılınız: ") # sayi_oku() satırı okur ve tam sayıya çevirmeyi dener. Sonuç iki şeyden biridir: # başarı (içinde sayı) ya da hata (içinde nedeni). tamam_mi() hangisi olduğunu söyler. # (Burada soruyu yukarıda kendimiz yazdığımız için sayi_oku'ya boş istem veriyoruz.) yil_sonucu = konsol.sayi_oku("") # Başarılıysa sayıyı deger() ile kutudan çıkarırız; değilse 2000 ile devam ederiz. dogum_yili = 2000 eger yil_sonucu.tamam_mi(): dogum_yili = yil_sonucu.deger() # ── 3. Ondalık sayı okumak ──────────────────────────────────── eger etkilesimli: konsol.yaz("Kilonuz (kg): ") kilo = ondalik(konsol.satir_oku().deger_veya("0").kirp()) eger etkilesimli: konsol.yaz("Boyunuz (m): ") boy = ondalik(konsol.satir_oku().deger_veya("0").kirp()) # ── 4. Hatalı bir girdi ─────────────────────────────────────── eger etkilesimli: konsol.yaz("Bu ay kaç kitap okudunuz? ") kitap_sonucu = konsol.sayi_oku("") # ── Okunanlarla hesap ───────────────────────────────────────── # Bu yılı saatten alıyoruz: zaman.bicimlendir("%Y") "2026" gibi bir metin verir. bu_yil = sayi(zaman.bicimlendir("%Y")) yas = bu_yil - dogum_yili # Vücut kitle indeksi: kilo / (boy * boy) vki = kilo / (boy * boy) yazdir(f"Merhaba {ad}!") yazdir(f"Adınız boşluk dahil {ad.uzunluk()} karakter.") eger yil_sonucu.tamam_mi(): yazdir(f"{dogum_yili} doğumlusunuz; bu yıl {yas} yaşına giriyorsunuz.") degilse: yazdir("Doğum yılı okunamadı: " + yil_sonucu.hata().mesaj()) yazdir(f"Kilo {kilo} kg, boy {boy} m → vücut kitle indeksi {vki:.1f}") # "on iki" bir sayı değil: sayi_oku bunu hata olarak bildirir, program çökmez. eger kitap_sonucu.tamam_mi(): yazdir(f"Bu ay {kitap_sonucu.deger()} kitap okumuşsunuz.") degilse: yazdir("Kitap sayısı anlaşılamadı: " + kitap_sonucu.hata().mesaj()) yazdir(" (Rakamla yazmayı deneyin, örneğin 12.)") # ── Girdinin sonu ───────────────────────────────────────────── # Beş satırın hepsini okuduk. Bir kez daha okumaya kalkarsak kutu boş gelir: # bos_mu() "okunacak satır kalmadı" demektir. Bu, boş bir satırla aynı şey değildir; # yalnız Enter'a basılan satır, içi boş bir metin olarak gelir. fazla = konsol.satir_oku() eger fazla.bos_mu(): yazdir("Girdi bitti; okunacak başka satır yok.")