# Metinler: Türkçe büyük/küçük harf, bölme, birleştirme, arama ve uzunluk # # Metin (string) bir harf dizisidir. KabaLang metinleri Türkçe kurallara göre # işler: "i" büyüyünce "İ", "I" küçülünce "ı" olur. Birçok dilde bu yanlış çalışır. # Bir metni tersine çeviren fonksiyon: harfleri tek tek gezip her birini başa ekler. fonksiyon ters_cevir(m: metin) -> metin: sonuc = "" dongu harf icinde m: sonuc = harf + sonuc don sonuc # Boşlukları ve büyük/küçük farkını atınca tersi kendisine eşit mi? fonksiyon palindrom_mu(m: metin) -> mantik: sade = m.kucult().degistir(" ", "") don sade == ters_cevir(sade) # ── Türkçe büyük/küçük harf ─────────────────────────────────── sehir = "istanbul" yazdir(f"\"{sehir}\".buyut() → {sehir.buyut()}") yazdir(f"\"IĞDIR\".kucult() → {'IĞDIR'.kucult()}") yazdir(f"\"ılık İğne\".buyut() → {'ılık İğne'.buyut()}") yazdir(f"\"ŞİŞLİ ÖĞÜT\".kucult() → {'ŞİŞLİ ÖĞÜT'.kucult()}") # Büyük/küçük harfe aldırmadan karşılaştırmak için iki tarafı da küçültürüz. girilen = "İZMİR" eger girilen.kucult() == "izmir": yazdir(f"\"{girilen}\" ile \"izmir\" aynı şehir") yazdir() # ── Uzunluk ve harflere erişim ──────────────────────────────── # uzunluk() harf sayısını verir; ş, ğ, İ gibi harfler de tek harf sayılır. kelime = "Şanlıurfa" yazdir(f"\"{kelime}\" {kelime.uzunluk()} harf") yazdir(f"İlk harf: {kelime[0]}, son harf: {kelime[-1]}, 0..3 arası: {kelime[0..3]}") yazdir(f"bastan(5): {kelime.bastan(5)}, sondan(4): {kelime.sondan(4)}, dilim(2, 3): {kelime.dilim(2, 3)}") yazdir() # ── Temizleme, arama, değiştirme ────────────────────────────── # kirp() baştaki ve sondaki boşlukları siler; kullanıcı girdisinde çok işe yarar. ham = " Merhaba Dünya " yazdir(f"[{ham}] → [{ham.kirp()}]") cumle = "Ankara Türkiye'nin başkentidir" yazdir(f"\"başkent\" geçiyor mu? {cumle.icerir('başkent')}") yazdir(f"\"Ankara\" ile mi başlıyor? {cumle.ile_baslar('Ankara')}") yazdir(f"\"dir\" ile mi bitiyor? {cumle.ile_biter('dir')}") yazdir(f"\"Türkiye\" hangi konumda başlıyor? {cumle.bul('Türkiye')} (0'dan sayarak; yoksa -1)") yazdir(f"Değiştir: {cumle.degistir('Ankara', 'Bursa').degistir('başkentidir', 'dördüncü büyük şehridir')}") yazdir() # ── Bölme ve birleştirme ────────────────────────────────────── # bol(ayrac) metni parçalara ayırıp liste verir; birlestir(ayrac) tersini yapar. satir = "Ayşe;Kaya;Eskişehir;34" alanlar = satir.bol(";") yazdir(f"Bölündü : {alanlar} ({alanlar.uzunluk()} parça)") yazdir(f"Ad soyad: {alanlar[0]} {alanlar[1].buyut()}") yazdir(f"Birleşti: {alanlar.birlestir(' | ')}") # Bir cümleyi kelimelere ayırıp her kelimenin ilk harfini büyütelim. baslik = "yaşlı ırmak ile genç irmik" kelimeler = baslik.bol(" ") duzgun = [] dongu k icinde kelimeler: duzgun.ekle(k.bastan(1).buyut() + k.dilim(1, k.uzunluk() - 1)) yazdir(f"Başlık biçimi: {duzgun.birlestir(' ')}") yazdir() # ── Harf harf gezme ─────────────────────────────────────────── # dongu harf icinde metin: her turda bir harf gelir. metin_ornegi = "Çalışkan öğrenciler ödevlerini erken bitirir" unlu = 0 bosluk = 0 dongu harf icinde metin_ornegi.kucult(): eger "aeıioöuü".icerir(harf): unlu += 1 degilse eger harf == " ": bosluk += 1 yazdir(f"\"{metin_ornegi}\"") yazdir(f" {metin_ornegi.uzunluk()} karakter, {unlu} ünlü, {bosluk + 1} kelime") dongu aday icinde ["Ey Edip Adanada pide ye", "Kayak", "Kalem"]: eger palindrom_mu(aday): yazdir(f" \"{aday}\" tersten de aynı okunur") degilse: yazdir(f" \"{aday}\" tersten \"{ters_cevir(aday)}\" olur") yazdir() # ── Tekrarlama ve hizalama ──────────────────────────────────── # tekrarla(n) metni n kez yan yana koyar. f-string içinde # {x:<10} sola, {x:>10} sağa, {x:^10} ortaya yaslar. yazdir("=".tekrarla(32)) yazdir(f"{'ŞEHİR':^32}") yazdir("=".tekrarla(32)) dongu ad icinde ["Rize", "Muğla", "Çanakkale"]: yazdir(f"{ad:<14}|{ad.buyut():>17}") yazdir("=".tekrarla(32))