ورود

View Full Version : تبدیل زبان اعداد در پایتون



usbiii
سه شنبه 15 مهر 1399, 12:50 عصر
سلام
چه طور میتونم یه عدد فارسی رو به معادلش در انگلیسی تبدیل کنم؟
چون تا وقتی انگلیسی نشه استرینگ تبدیل به اینتیجر نمیشه
ممنون

sd702004
سه شنبه 15 مهر 1399, 17:59 عصر
سلام. روش های مختلفی برای این کار وجود داره. یک روش خیلی ساده اینه:

text = "abc ۰۱۲۳۴۵۶۷۸۹ q59"
new_text = ""

for c in text:
chr_code = ord(c)
new_text += chr(chr_code-1728) if (chr_code>= 1776 and chr_code<=1785) else c

print(new_text)

usbiii
چهارشنبه 16 مهر 1399, 03:17 صبح
زیاد متوجه نشدم میتونید لینک برای مطالعه بهم بدین؟



سلام. روش های مختلفی برای این کار وجود داره. یک روش خیلی ساده اینه:

text = "abc ۰۱۲۳۴۵۶۷۸۹ q59"
new_text = ""

for c in text:
chr_code = ord(c)
new_text += chr(chr_code-1728) if (chr_code>= 1776 and chr_code<=1785) else c

print(new_text)

sd702004
چهارشنبه 16 مهر 1399, 09:15 صبح
به لینک زیر بخش Deviations from the Arabic script مراجعه کنید کد یونکید هر عدد رو ذکر کرده

https://en.wikipedia.org/wiki/Persian_alphabet

بعنوان مثال عدد فارسی صفر کدش برابر با U+06F0 هست. این یک عدد در مبنای 16 هست که اگه تبدیلش کنیم به مبنای 10 میشه 1776. به همین حالت عدد 9 فارسی میشه 1785. کدی که من نوشتم گفتم ابتدا چک کنه که کارکتر در این بازه باشه (یعنی یک عدد فارسی داشته باشیم)‌ بعد چنان چه عدد فارسی بود مقدار 1728 رو ازش کم کنه و تبدیلش کنه به کارکتر. در توضیح اینکه عدد 1728 از کجا اومده خدمت تون عرض شود که کد کارکتر عدد 0 انگلیسی برابر میشه با 48 و بعبارتی اگه کد هر عدد انگلیسی رو با 1728 جمع کنیم به معادل فارسی اون می رسیم