סקריפט: חישוב ספרת ביקורת בתעודת זהות

ניתן לקרוא כאן על אופן חישוב ספרת ביקורת בתעודת זהות. כדי להקל על החישוב כתבתי סקריפט שמבצע את החישוב. הסקריפט מטפל במצבים החריגים הבאים:

  • קבלת מספר שמכיל פחות מ- 8 ספרות. במצב זה יתווספו "אפסים" מובילים עד להשלמה ל- 8 ספרות.
  • קבלת מספר שמכיל יותר מ- 8 ספרות.
  • הכנסת קלט משובש (מכיל תווים שאינם ספרות).

הורדה: כאן
שימוש: python calculateID.py 12345678
הסבר: 12345678 הוא מספר תעודת זהות
הערה: דווחו על באגים :)

My Signature
This entry was posted in פיתוח. Bookmark the permalink.

4 Responses to סקריפט: חישוב ספרת ביקורת בתעודת זהות

  1. OSH says:

    יהיה exception של list index out of range. במקום רק להדפיס את זה תצא מן התוכנית באופן מפןרש באמצעות exit:

    exit("Error: Missing argument (Usage: id ID_Number\n")

    נ.ב
    המערכת שלך מאוד מציקה, כאשר שוכחים שדה צריך לכתוב את הכל מחדש. למה אתה לא עושה ואדליציה באמצעות JS?

  2. ilanshavit says:

    ההערה לגבי הקוד נכונה.

    לגבי המערכת: לא אני כתבתי אותה. מדובר ב- wordpress ואני צריך לבדוק אם יש פתרון לבעיה שהצגת.

  3. OSH says:

    יש פיתרון, hack the source :D .

  4. mcComBat says:

    a cooler version
    id = 12345678
    result = 10 – (reduce(lambda x, y: int(x) + int(y), reduce(lambda x, y: x+y, map(lambda x: str(int(x[0]) * x[1]), zip(list(id), map(lambda x: bool(x % 2) + 1, range(len(id))))))) % 10)
    result = result * abs(bool(result == 10) – 1)

כתיבת תגובה

האימייל שלך לא יוצג באתר. (*) שדות חובה מסומנים

*

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>