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ı: False
Luhn 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 6
Eğ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 6
Tüm haneleri toplayın:
4 + 9 + 9 + 4 + 7 + 6 + 9 + 7 + 7 + 2 + 6 = 70
Eğ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.