اسکریپت جدیدی که نوشتم، در واقع یه برنامه ست به زبون پایتون که یه اسم عربی رو از شما می گیره و معادل ابجدشو بهتون نشون می ده.
قبل از دیدن کد شاید بد نباشه از طرز کار ابجد سر در بیاریم.
در سیستم ابجد حرکات حروف،فاصله بین کلمات و همینطور تشدید ارزشی ندارن؛ یعنی محاسبه نمیشن. برای محاسبه ارزش ابجدی هم به این صورت عمل می کنیم که حروف یه کلمه رو جدا میکنیم و ارزش هر حرف رو با ارزش حرف بعدی جمع می کنیم. برای مثال کلمه مقدس علی، ابجدش به این صورت حساب میشه:
ع ل ی : ۷۰ + ۳۰ + ۱۰ = ۱۱۰
حالا با چیری که فهمیدیم نگاه کردن به کد زیر خیلی راحتره :
#!/usr/bin/python3
d = {}
abjad1 = 'ابجدهوزحط'
value1 = 1
abjad2 = 'یکلمنسعفص'
value2 = 10
abjad3 = 'قرشتثخذضظ'
value3 = 100
for i in abjad1:
d[i] = value1
value1 += 1
for i in abjad2:
d[i] = value2
value2 += 10
for i in abjad3:
d[i] = value3
value3 += 100
d['غ'] = 1000
while True:
name = str(input('enter arabic name: '))
abjad = 0
for i in name:
if d.__contains__(i):
abjad += d[i]
else:
print('Please enter Arabic letters')
continue
print('The Result = ',abjad)
if name == '0':
break
چیزی که یادم رفت زودتر بگم اینه که حروف در سیستم ابجد به سه گروه تقسیم میشن. ارزش حروف گروه اول یکی یکی، ارزش حروف گروه دوم ده تا ده تا و ارزش حروف گروه سوم صد تا صد تا بالا میره و در نهایت حرف «غ» رو داریم که ارزشی معادل ۱۰۰۰ داره.
اولین کاری که ما انجام دادیم ساخت یه دیکشنری بود که نقش بانک اطلا عاتی ما رو بازی می کنه و بعد گروه ها رو مشخص کردیم و ارزش اولیه شون رو بهشون دادیم.
حالا برای اینکه از کار تکراری نکنیم با چند تا حلقه for یکی یکی ارزش حروف رو بهشون می دیم و تو دیکشنری ذخیره می کنیم.
در قسمت پایانی هم یه اسم رو می گیریم و با همون الگوریتم محاسبه اعداد ابجد، خروجی رو نشون می دیم.