کد پایتون (منطق سمت سرور)

# conceptual_python_backend.py

from fractions import Fraction

def to_western_numerals(s_num):
    """Converts Persian/Arabic numerals to Western Arabic numerals."""
    persian_map = {'۰':'0', '۱':'1', '۲':'2', '۳':'3', '۴':'4', '۵':'5', '۶':'6', '۷':'7', '۸':'8', '۹':'9'}
    return "".join([persian_map.get(char, char) for char in str(s_num)])

def python_convert_rational_to_decimal(rational_str):
    try:
        rational_str = to_western_numerals(rational_str.strip())
        if '/' in rational_str:
            num, den = map(float, rational_str.split('/'))
            if den == 0:
                return {"error": "مخرج صفر است."}
            return {"value": round(num / den, 8)}
        else:
            return {"value": float(rational_str)}
    except Exception:
        return {"error": "ورودی گویا نامعتبر."}

def python_convert_decimal_to_rational(decimal_str):
    try:
        decimal_str = to_western_numerals(decimal_str.strip())
        fraction = Fraction(decimal_str).limit_denominator(10**8)
        return {"value": f"{fraction.numerator}/{fraction.denominator}"}
    except Exception:
        return {"error": "ورودی اعشاری نامعتبر."}
ماجرای گویا و اعشار
گویا
دختر گویا
دست دادن
اعشار
دختر اعشار