وبلاگ محسن

اسکریپت اعداد ابجد با پایتون

| پنجشنبه, ۱۹ دی ۱۳۹۲، ۰۷:۳۶ ب.ظ

اسکریپت جدیدی که نوشتم، در واقع یه برنامه ست به زبون پایتون که یه اسم عربی رو از شما می گیره و معادل ابجدشو بهتون نشون می ده.

قبل از دیدن کد شاید بد نباشه از طرز کار ابجد سر در بیاریم.

در سیستم ابجد حرکات حروف،فاصله بین کلمات و همینطور تشدید ارزشی ندارن؛ یعنی محاسبه نمیشن. برای محاسبه ارزش ابجدی هم به این صورت عمل می کنیم که حروف یه کلمه رو جدا میکنیم و ارزش هر حرف رو با ارزش حرف بعدی جمع می کنیم. برای  مثال کلمه مقدس علی، ابجدش به این صورت حساب میشه:

ع ل ی : ۷۰ +‌ ۳۰ + ۱۰ = ۱۱۰

حالا با چیری که فهمیدیم نگاه کردن به کد زیر خیلی راحتره : 

#!/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 یکی یکی ارزش حروف رو بهشون می دیم و تو دیکشنری ذخیره می کنیم.

در قسمت پایانی هم یه اسم رو می گیریم و با همون الگوریتم محاسبه اعداد ابجد، خروجی رو نشون می دیم.

نظرات  (۱)

با تشکر از برنامه ی شما
برنامهی شما برای کلماتی که حرف 'ی' دارند درست جواب منی دهد.
باز هم با تشکر از شما

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی