Python Büyük Ünlü Uyumu

Merhaba arkadaşlar bir çok yere baktım fakat bulamadım Python’da Büyük ünlü küçük ünlü uyumuna uyan basit bir kod arıyorum yapmaya çalıştım fakat olmadı

Yapmaya çalıştığınız kodu görebilir miyiz? Ayrıca büyük ünlü uyumu ve küçük ünlü uyumu iki ayrı kuraldır. Siz her ikisine de uyan kelimeleri döndürecek bir kod mu yazmak istiyorsunuz yoksa ayrı ayrı iki kural için iki kod mu?

Bu ifade çok başka bir anlama geliyor çünkü.

1 Beğeni

Ayrı ayrı yazmak istiyorum

Şunu inceleyin

kalin_unluler = list("aıou")  # veya ['a', 'ı', 'o', 'u']
ince_unluler = list("eiöü")  # veya ['e', 'i', 'ö', 'ü']
kelime = input("Kelimeyi giriniz: ")  # Girdi alınır.
if (sum(kelime.count(kalin) for kalin in kalin_unluler)) != 0 and (sum(kelime.count(ince) for ince in ince_unluler)) != 0:  # Aynı kelime içerisinde hem kalın ünlü hem de ince ünlü bulunuyor mu diye bakar.
    print(f"'{kelime.capitalize()}' Büyük Ünlü Uyumuna Uymaz.")   # capitalize() ile ilk harf büyük hale getirilir. Daha hoş bir görünüm için ekledim.
else:
    print(f"'{kelime.capitalize()}' Büyük Ünlü Uyumuna Uyar.")

Büyük ünlü uyumu için böyle kısa bir program kodlayabildim. Umuyorum ki işinize yarayacaktır.

Edit: Küçük ünlü uyumu için de bir şeyler yaptım. Fakat bu sefer kısa olmadı :’)

unluler = list("aıoueiöü")  # veya ['a', 'ı', 'o', 'u', 'e', 'i', 'ö', 'ü']
kelime = input("Kelimeyi giriniz: ")  # Girdi alınır.
kiu = []  # Boş bir liste oluşturulur. kiu = kelime içerisindeki ünlüler
for harf in kelime:
    if harf in unluler:
        kiu.append(harf)  # Kelime içerisindeki ünlüleri listeye atarız.

duz_unluler = list("aeıi")  # veya ['a', 'e', 'ı', 'i']. Düz ünlüden sonraki ünlü yine bu liste içerisinde olmalıdır.
duzden_sonra = list("aeıi")
yuvarlak_unluler = list("ouöü")  # veya ['o', 'u', 'ö', 'ü'] Yuvarlak ünlüden sonraki ünlü a, e, u, ü olmalıdır.
yuvarlaktan_sonra = list("aeuü")
kurala_uyuyor = None

for indeks in range(len(kiu)):
    try:
        if kiu[indeks] in duz_unluler and kiu[
            indeks + 1] in duzden_sonra:  # Mevcut ünlü ve bir sonra gelen ünlü kurala uyuyor mu diye bakar.
            kurala_uyuyor = True
        elif kiu[indeks] in yuvarlak_unluler and kiu[
            indeks + 1] in yuvarlaktan_sonra:  # Mevcut ünlü ve bir sonra gelen ünlü kurala uyuyor mu diye bakar.
            kurala_uyuyor = True
        else:
            kurala_uyuyor = False
            break  # Tekrar tekrar çıktı almamak adına döngüyü durdururuz.
            
    except IndexError:  # kiu'nun son elemanına geldiğinde kendisinden bir sonraki elemana bakamayacağından hata verecektir. Bu yüzden error exception kullandık.
        continue  # Hatayı aldıktan sonra devam eder.

if kurala_uyuyor:
    print(f"'{kelime.capitalize()}' Küçük Ünlü Uyumuna Uyar.")
else:
    print(f"'{kelime.capitalize()}' Küçük Ünlü Uyumuna Uymaz.")

mükemmel olmuş çok teşekkür ederim

1 Beğeni