99 lines
4.5 KiB
Plaintext
99 lines
4.5 KiB
Plaintext
# 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))
|