İnsan Okuyabilir Tam Sayı Temsili Oluşturma: Tam Kılavuz
Sayıları daha anlaşılır bir formatta gösterme gerekliliği ile hiç karşılaştınız mı? Belki de sayısal verilere aşina olmayan bir dinleyici kitlesine veri sunmanız gerekiyor. Bu gibi durumlarda, tam sayıları insan okunabilir temsillerine dönüştürmek, netliği önemli ölçüde artırabilir. Bu görev basit görünse de, sayıları kelimeler olarak doğru bir şekilde temsil eden akıllıca tasarlanmış bir fonksiyon gerektirir.
Problem
Elimizdeki zorluk, tam sayı değerlerini tanımlayıcı dize biçimlerine dönüştüren bir fonksiyon oluşturmaktır. İşte bu fonksiyonun gerçekleştirmesi gereken bazı örnekler:
humanReadable(1)
“bir” döndürmelidir.humanReadable(53)
“elli üç” döndürmelidir.humanReadable(723603)
“yedi yüz yirmi üç bin altı yüz üç” döndürmelidir.humanReadable(1456376562)
“bir milyar dört yüz elli altı milyon üç yüz yetmiş altı bin beş yüz altmış iki” döndürmelidir.
Böyle bir fonksiyonun neden gerekli olduğunu merak edebilirsiniz. Bu tür bir algoritmanın gerçek dünyada yazılım geliştirmede, kullanıcı arayüzlerinden rapor oluşturmaya kadar birçok uygulaması vardır.
Çözüm Yaklaşımı
humanReadable
fonksiyonunu uygulamak için süreci yönetilebilir adımlara ayırmayı düşünün. Bu problemi ele almak için yapılandırılmış bir yaklaşım işte burada:
1. Sayı Yapısını Anlamak
Kodlamaya başlamadan önce, sayıların nasıl yapıldığını anlamak önemlidir:
- Birler: 0-19 arası benzersiz isimlere sahiptir (örneğin; bir, on dokuz).
- Onlar: 20, 30, …, 90 belirli terimlere sahiptir (örneğin; yirmi, otuz, vb.).
- Yüzler ve Binler: 100’den itibaren gerekiyorsa ’ve’ kullanarak isimleri oluştururuz (örneğin; yüz üç).
2. Fonksiyonu Uygulamak
Bu fonksiyonu nasıl kodlayabileceğinize dair temel bir taslak aşağıda verilmiştir:
Adım Adım Uygulama
- Temel Durumlar: 0’dan 19’a kadar olan sayıları doğrudan ele alın.
- Onlar ve Üstü: Onlar ve üstü için ek eşleştirmeler oluşturun.
- Özyinelemeli Bölme: Daha büyük sayıları yönetilebilir parçalara (örneğin; binler, milyonlar) ayırın.
def humanReadable(number):
if 0 <= number < 20:
return unique_names[number]
elif 20 <= number < 100:
return tens_names[number // 10] + ('' if number % 10 == 0 else '-' + unique_names[number % 10])
elif 100 <= number < 1000:
return unique_names[number // 100] + ' yüz' + ('' if number % 100 == 0 else ' ve ' + humanReadable(number % 100))
# Binler ve milyonlar için devam edin
3. Örnek Uygulama
Size sağlam bir başlangıç noktası sağlamak için işte tüm yapının tam hali:
unique_names = ["sıfır", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz", "on",
"on bir", "on iki", "on üç", "on dört", "on beş", "on altı", "on yedi", "on sekiz", "on dokuz"]
tens_names = ["", "", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan"]
def humanReadable(number):
if number < 20:
return unique_names[number]
elif number < 100:
return tens_names[number // 10] + ('' if number % 10 == 0 else '-' + unique_names[number % 10])
# Yüzler, binler, milyonlar için daha fazla durum ekleyin...
4. Fonksiyonunuzu Test Etme
Fonksiyonunuzun belirtilen tüm tam sayıları doğru bir şekilde işlediğinden emin olmak için çeşitli test durumları çalıştırın:
print(humanReadable(1)) # "bir"
print(humanReadable(53)) # "elli üç"
print(humanReadable(723603)) # "yedi yüz yirmi üç bin altı yüz üç"
print(humanReadable(1456376562)) # "bir milyar dört yüz elli altı milyon üç yüz yetmiş altı bin beş yüz altmış iki"
Sonuç
İşte bu kadar! Tam sayıları insan okunabilir
bir biçimde oluşturmak, yalnızca bir entelektüel egzersiz değil, aynı zamanda birçok programlama senaryosunda pratik bir yardımcıdır. Burada belirttiğimiz yapılandırılmış yaklaşımla bu kodlama zorluğunu ustalıkla aşmaya bir adım daha yakın olacaksınız.
Artık kodlama ortamınızı açın ve bu eğlenceli ve yararlı fonksiyonu bugün uygulamaya başlayın!