Visualize
main.py
import re def harfi_standardize_et(metin): """Sizin verdiğiniz orijinal Arapça metin temizleme fonksiyonu""" if not metin: return "" harekeler = re.compile(r'[\u064B-\u065F\u0670\u06D6-\u06ED]') temiz = harekeler.sub('', metin) temiz = re.sub(r'[\u00A0\u2000-\u200A\u202F\u205F\u3000]', ' ', temiz) temiz = re.sub(r'[\d\u0660-\u0669]', '', temiz) temiz = re.sub(r'ء', '', temiz) # Kelime içine sızabilecek yabancı/latin harfleri tamamen ayıklar temiz = re.sub(r'[a-zA-Z]', '', temiz) temiz = re.sub(r'[^\w\s\u0621-\u064A]', '', temiz) donusum = { 'آ': 'ا', 'أ': 'ا', 'إ': 'ا', 'ى': 'ي', 'ؤ': 'و', 'ئ': 'ي', 'ة': 'ه' } son_metin = [] for harf in temiz: if harf in donusum: son_metin.append(donusum[harf]) else: son_metin.append(harf) return "".join(son_metin).strip() def buyuk_sayi_7_kontrol_paneli(ham_metin): # Standart Arapça Alfabesi Sıra Numaraları (1-28) standart_alfabe = { 'ا': 1, 'ب': 2, 'ت': 3, 'ث': 4, 'ج': 5, 'ح': 6, 'خ': 7, 'د': 8, 'ذ': 9, 'ر': 10, 'ز': 11, 'س': 12, 'ش': 13, 'ص': 14, 'ض': 15, 'ط': 16, 'ظ': 17, 'ع': 18, 'غ': 19, 'ف': 20, 'ق': 21, 'ك': 22, 'ل': 23, 'م': 24, 'ن': 25, 'ه': 26, 'و': 27, 'ي': 28 } # 7 Mukatta Harfinin Geleneksel Ebced Değerleri ebced_alfabe = { 'ا': 1, 'ح': 8, 'ر': 200, 'س': 60, 'ط': 9, 'ل': 30, 'م': 40 } # 7 Hedef Harf Filtresi hedef_harfler = {'ا', 'ح', 'ر', 'س', 'ط', 'ل', 'م'} # Tüm metni önce kelimelere ayırıp, temizleyip tek parça temiz harf akışı yapıyoruz kelimeler = ham_metin.split() temiz_harf_listesi = [] for k in kelimeler: temiz_kelime = harfi_standardize_et(k) for harf in temiz_kelime: if harf in hedef_harfler: temiz_harf_listesi.append(harf) if not temiz_harf_listesi: print("[HATA] Girilen metinde bu 7 harften hiçbiri bulunamadı!") return # 1. ANALİZ: Standart Alfabe Sırasına Göre Yan Yana Dizim standart_sayi_str = "".join([str(standart_alfabe[h]) for h in temiz_harf_listesi]) standart_buyuk_sayi = int(standart_sayi_str) std_kalan = standart_buyuk_sayi % 7 std_onay = "TAM BÖLÜNÜR ✅ (Mod 7 = 0)" if std_kalan == 0 else f"Bölünmez ❌ (Kalan: {std_kalan})" # 2. ANALİZ: Ebced Değerlerine Göre Yan Yana Dizim ebced_sayi_str = "".join([str(ebced_alfabe[h]) for h in temiz_harf_listesi]) ebced_buyuk_sayi = int(ebced_sayi_str) ebc_kalan = ebced_buyuk_sayi % 7 ebc_onay = "TAM BÖLÜNÜR ✅ (Mod 7 = 0)" if ebc_kalan == 0 else f"Bölünmez ❌ (Kalan: {ebc_kalan})" # RAPORLAMA EKRANI print("\n" + "="*80) print("📈 METİN BÜTÜNSEL MUKATTA MÜHÜR RAPORU (7 HARF AKIŞI)") print("="*80) print(f"Süzülen Harf Sayısı : {len(temiz_harf_listesi)} adet") print(f"Metindeki Harf Akışı : {', '.join(temiz_harf_listesi)}") print("-"*80) print(f"➡️ 1. STANDART ALFABE BÜYÜK SAYI ANALİZİ:") print(f" Oluşan Devasa Sayı ({len(standart_sayi_str)} Basamaklı):") print(f" {standart_sayi_str}") print(f" 7'ye Bölünme Durumu : {std_onay}") print("-"*80) print(f"➡️ 2. EBCED DEĞERLERİ BÜYÜK SAYI ANALİZİ:") print(f" Oluşan Devasa Sayı ({len(ebced_sayi_str)} Basamaklı):") print(f" {ebced_sayi_str}") print(f" 7'ye Bölünme Durumu : {ebc_onay}") print("="*80 + "\n") # ---- INTERAKTİF PANEL ÇALIŞTIRMA ---- print("="*75) print(" 7 MUKATTA HARFİ BÜYÜK SAYI (MOD 7) TEST PANELİ ") print("="*75) while True: print("Lütfen analiz edilecek Arapça metni girin/yapıştırın:") print("(Giriş bittiğinde boş bir satırda ENTER'a basın. Çıkmak için 'çıkış' yazın.)") satirlar = [] cikis_istegi = False while True: hat = input("> ") if hat.strip().lower() == 'çıkış': cikis_istegi = True break if not hat: break satirlar.append(hat) if cikis_istegi: print("\nSorgu paneli kapatıldı. İyi çalışmalar!") break ana_metin = " ".join(satirlar).strip() if not ana_metin: print("[UYARI] Boş veri girdiniz.\n") continue buyuk_sayi_7_kontrol_paneli(ana_metin)
Output