دستور switch / case یه ساختاری که تقریباً در اکثر زبان های برنامه نویسی وجود داره .
کاربردش یه جورایی تو مایه های if / else با این تفاوت که توی شرط های طولانی استفاده از switch / case کد تمیز تر و کوتاه تری را به ما میده.
اگه بخواهیم مثال بالا را توی پایتون بنویسیم باید به صورت زیر بنویسیم :
همونطور که می بینید اگه بخواهیم به این شکل بنویسیم کدمون طولانی میشه ، ولی میشه این برنامه را طور دیگه ای با کد کمتر نوشت.
توی زبان پایتون عبارت switch / case به صورت مستقیم وجود نداره ، اما میشه با استفاده از دیکشنری ها در پایتون چیزی شبیه به اون ها را پیاده سازی کرد.
برای اینکار اول یه فانکشن مینویسیم که یه متغیر را به عنوان ورودی دریافت میکنه و یه دیکشنری خالی را برای ما بر میگردونه:
حالا اون مقادیری که انتظار داریم متغیر ما داشته باشه را به عنوان کلید ها و مقدار های دیکشنری قرار میدیم:
حالا با استفاده از متد ()get که برای دیکشنری ها موجوده ( اگه با این متد آشنایی ندارید به آخر پست مراجعه کنید ) اون کلیدی که میخاهیم مقدارش را میگیریم و برمیگردونیم:
این هم کد تصویر بالا اگه حالش را ندارید بنویسیدش و میخواهید برای تست کردن کپی کنید ?
def test(grade): return { 'A': 'This is A', 'B': 'This is B', 'C': 'This is C', 'D': 'This is D', 'F': 'This is F', }.get(grade, f'{grade} is not a grade!')
متد ()get پایتون
این متد برای دیکشنری ها توی پایتون موجوده و دو مقدار را از ما میگیره.
مقدار اول اون کلیدی از اون دیکشنری هست که ما بهش نیاز داریم ، مقدار دوم ، اگه اون کلید توی اون دیکشنری موجود نبود برای ما برگردونده میشه و به ما نشون میده.
این مقدار دلخواه هست و اگه قرار ندیم به صورت پیش فرض به ما None برمیگردونه.