📌 عنوان برنامه: تابعی به نام is_national_code_valid بنویسید که یک ورودی به نام value از جنس رشته (String)، دریافت نموده و در صورتی که مقدار value، یک کد ملی معتبر بود، مقدار True و در غیر این صورت، مقدار False را برگرداند؟

تذکر: با توجه به الگوریتم ذیل، سعی کنید که تابع مذکور را پیاده‌سازی و تست نمایید. انشاءالله تا ۲۴ ساعت آینده، به دو روش ساده و حرفه‌ای، سورس‌کد مربوطه، منتشر خواهد شد، و شما می‌توانید، کد خود را با این دو کد منتشر شده، مقایسه نمایید.

تذکر: در صورتی که شخصی از کد ملی جعلی یا Fake استفاده نماید، مجازات آن، بر طبق قانون، از ۶ ماه تا ۳ سال زندان بوده و یا به صورت جریمه نقدی، محکوم به پرداخت از ۳ الی ۱۸ میلیون ریال برای فرد خاطی در نظر گرفته می‌شود!

نکته‌ای، صرفا در جهت اطلاعات عمومی: سه رقم اول، مربوط به کد شهر می‌باشد!

- در صورتی که value، هیچ مقداری نداشته باشه (None)، کد ملی معتبر نمی‌باشد.
- تمام Space های مقدار value را از بین می‌بریم.
- در صورتی که طول رشته value، بزرگ‌تر از ۱۰ کاراکتر و یا کمتر از ۸ کاراکتر باشد، کد ملی معتبر نمی‌باشد.
- در صورتی که طول رشته value، برابر ۸ کاراکتر باشد، از سمت چپ، دو صفر به آن اضافه می‌کنیم، تا طول رشته ۱۰ کاراکتر شود.
- در صورتی که طول رشته value، برابر ۹ کاراکتر باشد، از سمت چپ، یک صفر به آن اضافه می‌کنیم، تا طول رشته ۱۰ کاراکتر شود.
- در صورتی که تمام کاراکترهای مقدار value، عددی نباشند، کد ملی معتبر نمی‌باشد.
- در صورتی که همه ارقام کد ملی، کاملا یکسان باشند، کد ملی معتبر نمی‌باشد. یعنی، مثلا اگر همه ارقام یک باشند، کد ملی معتبر نمی‌باشد!

- نکته: اولین رقم در کد ملی، اولین رقم در سمت چپ آن می‌باشد و طبعا آخرین (دهمین) رقم در کد ملی، اولین رقم در سمت راست آن می‌باشد.

- حال متغیری به نام sum، تعریف کرده و اولین رقم کد ملی را در عدد ۱۰ ضرب کرده و با متغیر sum، جمع می‌کنیم و مجددا دومین رقم کد ملی را در عدد ۹ ضرب کرده و با متغیر sum، جمع می‌کنیم و این عمل را تا نهمین! رقم کد ملی تکرار می‌کنیم.
- دهمین رقم کد ملی را در متغیری به نام control_digit ذخیره می‌کنیم.
- باقیمانده حاصل این جمع را بر عدد ۱۱ بدست آورده و آن‌را در متغیری به نام remainder ذخیره می‌کنیم.

تست نهایی:

- در صورتی که مقدار remainder، کمتر از عدد ۲ باشد (یعنی یا صفر یا یک باشد)، اگر مقدار remainder، برابر مقدار control_digit باشد، کد ملی معتبر بوده و در غیر این صورت معتبر نمی‌باشد!

- در صورتی که مقدار remainder، بزرگ‌تر یا مساوی عدد ۲ باشد، اگر تفاضل remainder از عدد ۱۱، مساوی مقدار control_digit باشد، کد ملی معتبر بوده و در غیر این صورت معتبر نمی‌باشد!

#ALGORITHM #SourceCode10031 #Practical
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
4👍2