switch case در پایتون / match case در پایتون

معادل switch case در پایتون | match case در پایتون4 دقیقه مطالعه

هدیه فنولوژی به شما!

تا به حال فکر کرده‌اید که آیا جایگزینی برای نوشتن این جملات پیچیده If else در پایتون وجود دارد؟ اگر نمی‌خواهید چندین عبارت «If» کد شما را به هم بریزد، باید از عبارت Switch استفاده کنید که راهی تمیزتر و سریعتر برای پیاده سازی جریان کنترل در کد شما ارائه می‌دهد. البته بر خلاف زبان‌های برنامه نویسی ++C، جاوا، روبی و سایر زبان‌های برنامه نویسی، پایتون دستور switch case را ارائه نمی‌دهد‌، اما راهکارهای دیگری برای معادل سازی switch case وجود دارد. همچنین در نسخه‌ی ۳.۱۰ پایتون دستور match case می‌تواند این کار را انجام دهد. در این قسمت از دوره آموزش رایگان پایتون فنولوژی در این مورد توضیح می‌دهیم.

کاربرد دستور Switch چیست؟

به طور کلی، سوئیچ یک مکانیسم کنترلی است که مقدار ذخیره شده در یک متغیر را بررسی می‌کند و دستورات مربوطه را اجرا می کند. عبارت Switch case جریان کنترل را در برنامه شما معرفی می‌کند و اطمینان می‌دهد که کد شما توسط چندین عبارت if به هم نریزد. بنابراین، کد شما برای بینندگان دقیق و شفاف به نظر می‌رسد. این یک ویژگی برنامه نویسی فوق العاده است که برنامه نویسان از آن برای پیاده سازی جریان کنترل در کد خود استفاده می‌کنند. در این دستور یک متغیر مورد ارزیابی قرار می‌گیرد(switch)؛ اگر مقدار آن برابر case اول بود، دستورات case 1، اگر برابر case دوم بود، دستورات case 2 و به همین ترتیب تا انتها اجرا می‌شوند.

نمونه switch case در زبان c

اگر همیشه به زبان هایی مانند C یا Java کد نویسی کرده‌اید، ممکن است عجیب به نظر برسد که پایتون دستور case ندارد. در عوض پایتون راه حل‌های متعددی مانند دیکشنری، کلاس‌های پایتون یا توابع lambda پایتون را برای پیاده سازی دستورات switch-case ارائه می‌دهد. قبل از اینکه به عمق این راهکارها بپردازیم، ابتدا بیایید ببینیم عملکرد یک switch case در سایر زبان‌های برنامه نویسی چگونه است. به قطعه کد C زیر دقت کنید:

در کد بالا مقدار متغیر x، همان مقداری است که باید روی آن تغییر (switch) اعمال شود. case 1 بررسی می‌کند آیا مقدار x برابر ۱ است یا خیر؛ به همین ترتیب برای case های دیگر نیز بررسی می‌کند که در نهایت متوجه می‌شود مقدار مورد نظر برابر ۲ است و با دستور break خارج می‌شود.

پیاده سازی switch case در پایتون

برای این کار راه‌های مختلفی وجود دارد. در پایتون ۳.۱۰ از دستور match case استفاده می‌کنیم. برای نسخه‌های قبل از آن روش‌های زیر می‌توانند استفاده شوند:

استفاده از دیکشنری معادل switch case در پایتون

دیکشنری در زبان‌های برنامه نویسی، شامل یک کلید (key) و یک مقدار (value) است. اگر از دیکشنری به جای switch case بخواهیم استفاده کنیم، keyها معادل case خواهند بود. برای این کار ابتدا توابعی تعریف می‌کنیم که با فراخوانی آن‌ها نام یک سال نمایش داده شود. سپس در یک دیکشنری آن‌ها را متناظر اعداد ماه ایجاد می‌کنیم. در نهایت تابعی می‌نویسیم که یک عدد در ورودی می‌گیرد و در دیکشنری به دنبال ماه مورد نظر می‌گردد. دستور get مقدار key یک دیکشنری به همراه مقدار default را می‌گیرد و value متاظر را بر می‌گرداند. اگر آن key در دیکشنری نبود حالت default بر می‌گرداند. (پیش فرض آن None است و می‌توانیم خودمان نیز آن را تعیین کنیم.)

مشاهده‌ی خروجی:

توجه کنید اگر می‌خواستیم به صورت غیر بهینه از دستور if و elif استفاده کنیم، کدی شبیه زیر داشتیم:

کلاس در پایتون برای انجام switch case

توصیه می‌شود قبل از مطالعه‌ی این بخش حتما مقاله‌ی مفاهیم شیئ‌گرایی، کلاس در پایتون و تابع lambda در پایتون را مطالعه کنید. برای این کار ابتدا یک متد switch داخل یک کلاس switch در پایتون ایجاد می‌کنیم که به عنوان ورودی یک ماه از سال را می‌گیرد و نتیجه را به یک رشته در پایتون تبدیل می‌کند. در مرحله‌ی بعدی برای هر case یک تابع جداگانه تعریف می‌کنیم. در زیر کد نهایی را مشاهده می‌کنید:

مشاهده خروجی:
در کد بالا دستور lambda برای تعریف یک تابع بدون نام است. اگر کاربر مقدار نامعتبری را وارد کند، با کلیدواژه‌ی lambda به تابع default استنباط می‌کند. متد getattr نیز برای استنباط به یک تابع در پایتون استفاده می‌شود.
تیم محتوایی فنولوژی
تیم محتوایی فنولوژی
گروهی از متخصصان حوزه‌های مختلف
عضویت
اطلاع از
0 دیدگاه‌ها
بازخورد در متن
دیدن همه دیدگاه‌ها

فنولوژی را در شبکه‌های اجتماعی دنبال کنید

©۲۰۲۰ – کلیه حقوق مادی و معنوی متعلق به فنولوژی است.