8 - Alıştırmalar
2024
Bu hafta alıştırma yaparak öğrendiklerimizi pekiştireceğiz.
{"ve": 3, "bir": 2, ...}).{"a": 10, "b": 5,...}).Türkiye Cumhuriyeti Kimlik Numarası’nın (TC Kimlik No) geçerli olup olmadığını kontrol eden bir fonksiyon yazın. Fonksiyon, TC Kimlik No’yu string olarak parametre olarak alsın ve geçerli ise True, geçersiz ise False döndürsün.
TC Kimlik No’nun geçerliliği için şu kurallara uyulmalıdır:
Örnek Girdi ve Çıktı:
gecersiz_tc = "12345678902" # Son hane uyuşmuyor
gecersiz_tc2 = "02345678901" # İlk hane 0
gecersiz_tc3 = "123456789a1" # Sadece rakamlardan oluşmalı
gecersiz_tc4 = "1234567890" # 11 hane olmalı
print(tc_kontrol(gecersiz_tc)) # Çıktı: False
print(tc_kontrol(gecersiz_tc2)) # Çıktı: False
print(tc_kontrol(gecersiz_tc3)) # Çıktı: False
print(tc_kontrol(gecersiz_tc4)) # Çıktı: FalseLuhn algoritmasını kullanarak bir kredi kartı numarasının geçerli olup olmadığını kontrol eden bir fonksiyon yazın. Fonksiyon, kredi kartı numarasını string olarak parametre olarak alsın ve geçerli ise True, geçersiz ise False döndürsün.
Luhn algoritması şu şekilde çalışır:
Örnek Girdi ve Çıktı:
gecerli_kart = "49927398716"
gecersiz_kart = "49927398717"
gecerli_kart_2 = "1234567890123456" # 16 haneli olabilir
gecersiz_kart_2 = "1234567890123452"
print(luhn_kontrol(gecerli_kart)) # Çıktı: True
print(luhn_kontrol(gecersiz_kart)) # Çıktı: False
print(luhn_kontrol(gecerli_kart_2)) # Çıktı: True
print(luhn_kontrol(gecersiz_kart_2)) # Çıktı: False
Luhn algoritmasını geçerli bir kredi kartı numarası üzerinde adım adım açıklayalım. Örnek olarak 49927398716 numarasını kullanalım:
Sayının sağdan sola doğru her hanesini numaralandırın:
4 9 9 2 7 3 9 8 7 1 6
11 10 9 8 7 6 5 4 3 2 1Çift numaralı haneleri 2 ile çarpın:
4 (9*2) 9 (2*2) 7 (3*2) 9 (8*2) 7 (1*2) 6
4 18 9 4 7 6 9 16 7 2 6Eğer çarpım sonucu iki basamaklı bir sayı ise, basamaklarını toplayın:
4 (1+8) 9 4 7 6 9 (1+6) 7 2 6
4 9 9 4 7 6 9 7 7 2 6Tüm haneleri toplayın:
4 + 9 + 9 + 4 + 7 + 6 + 9 + 7 + 7 + 2 + 6 = 70Eğer toplam 10’un katı ise, sayı geçerlidir.
70, 10’un katı olduğu için 49927398716 numarası Luhn algoritmasına göre geçerli bir kredi kartı numarasıdır.