Python ile Geçerli ve Rastgele TC Kimlik Numarası Üretme Algoritması
TC Kimlik Numarası, Türkiye Cumhuriyeti vatandaşlarına ait 11 haneli benzersiz bir numaradır. Bu numaranın belirli matematiksel kurallara uyması gerekir. Peki, geçerli bir TC Kimlik Numarası nasıl oluşturulur? Bu yazımızda, Python ile rastgele ve geçerli bir TC Kimlik No Üretici (Generator) oluşturacağız.
TC Kimlik Numarası Kuralları
TC Kimlik numarası üretirken dikkat edilmesi gereken bazı kurallar vardır:
- ✅ 11 haneli olmalı.
- ✅ İlk hane 0 olamaz.
- ✅ 10. hane belirli bir formüle göre hesaplanır.
- ✅ 11. hane, tüm rakamların toplamının 10’a bölümünden kalan olarak hesaplanır.
Şimdi, Python ile geçerli bir TC Kimlik Numarası üreten fonksiyonu inceleyelim.
Python ile Geçerli TC Kimlik Numarası Üretme
Aşağıdaki kod, yukarıdaki kurallara uygun olarak geçerli bir TC Kimlik No üretir:
import random
def generate_turkish_id():
# İlk 9 haneyi rastgele oluştur (0 ile başlamamalı)
first_nine_digits = [random.randint(1, 9)] + [random.randint(0, 9) for _ in range(8)]
# Tek ve çift indeksli sayıların toplamlarını hesapla
odd_sum = sum(first_nine_digits[i] for i in range(0, 9, 2))
even_sum = sum(first_nine_digits[i] for i in range(1, 8, 2))
# 10. haneyi hesapla
tenth_digit = (7 * odd_sum - even_sum) % 10
# 11. haneyi hesapla
eleventh_digit = (sum(first_nine_digits) + tenth_digit) % 10
# Sonucu string olarak birleştir
return "".join(map(str, first_nine_digits)) + str(tenth_digit) + str(eleventh_digit)
# Örnek kullanım
print(generate_turkish_id())
Nasıl Çalışıyor?
- 1️⃣ İlk olarak, ilk 9 hane rastgele oluşturulur.
- 2️⃣ Daha sonra, tek indeksli ve çift indeksli rakamların toplamı hesaplanır.
- 3️⃣ 10. hane, özel bir formül ile hesaplanır:
- 📌 (7 * tek indeks toplamı - çift indeks toplamı) % 10
- 4️⃣ 11. hane, tüm rakamların toplamının 10’a bölümünden kalan olarak bulunur.
Bu sayede, her oluşturulan numara geçerli bir TC Kimlik Numarası formatına sahip olur. 🎯