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. 🎯