Bu kodun anlamı nedir?

def is_isogram(string):
    clean_word = string.lower()
    letter_list = []
    for letter in clean_word:
        if letter.isalpha():
            if letter in letter_list:
                return False
            letter_list.append(letter)
    return True

Arkadaşlar merhaba. Bu kodun anlamını anlatabilecek var mı?

Definition and Usage

The isalpha() method returns True if all the characters are alphabet letters (a-z).

Example of characters that are not alphabet letters: (space)!#%&? etc. [Python String isalpha() Method]

Yukarıdaki tanıma göre isalpha() methodu ile bir harfin alfabe içerisinde bulunup bulunmadığı kontrol edilebiliyor.

  • Fonksiyon ile string bir ifade parametre olarak alınıyor.
  • Alınan bu string ifadenin tamamı, lower() methodu ile küçük harflere dönüştürülüyor. Ardından clean_word değişkenine atanıyor.
  • Boş bir liste oluşturularak letter_list değişkenine atanıyor.
  • For döngüsü ile clean_word’un her bir karakteri geçici letter değişkenine atanıyor.
  • letter değişkeninin letter_list içerisinde yer alıp almadığı kontrol ediliyor. Eğer yer alıyorsa False döndürülüyor. Buradaki amaç, bir harfin clean_word içerisinde birden fazla kez yer alıp almadığını kontrol etmek. Eğer letter ile ilk defa karşılaşılıyorsa letter_list içerisine kaydediliyor. Böylece sonraki karşılaşmada if cümlesi doğru olacak ve False değeri döndürülebilecek.
  • Eğer herhangi bir harf birden fazla kez bulunmuyorsa, True değeri döndürülecek.

*İçerisinde çeşitli karakterler barındıran string bir ifadenin harflerinin, ifade içerisinde birden fazla kez bulunup bulunmadığının kontrol edilebileceği bir fonksiyon.

print(is_isogram("1241222^%+&/()^, a"))
print(is_isogram("1241222^%+&/()^, ab"))
print(is_isogram("1241222^%+&/()^, abb"))
True
True
False

Görüldüğü üzere, sayılar ve diğer semboller kendini tekrar ettiğinde, aldığımız çıktı yine True oluyor. Fakat alfabe içerisinde yer alan herhangi bir harf 2 veya daha fazla kez tekrar ettiğinde ise çıktı False oluyor.

3 Beğeni

Teşekkür ederim, CodeWars sorusuydu. Ondan sormak istedim.

2 Beğeni