در دو جلسه گذشته با توابع پایتون آشنا شدیم. در این دو بخش تلاش شد تا مفاهیم کلی درباره توابع مرور شده و پس از آن استفاده از توابع پیش فرض پایتون و در نهایت ساخت توابع جدید بسته به نیاز برنامه آموزش داده شود. همچنین از آنجا که با نرم افزارهای مورد نیاز کدنویسی و اجرای برنامه های نوشته شده به زبان پایتون هم آشنا شدیم مثال هایی از نحوه کدنویسی و اجرای آن از طریق cmd نیز زده شد. بخش هایی که طی روزهای آینده مورد بررسی قرار خواهند گرفت را می توان به نوعی پایان بندی مباحث اولیه آموزش پایتون دانست که پیش از حرکت به سوی بخش های حرفه ای تر نیازمند یادگیری آنها هستیم. اولین بخش از این مباحث عبارت های شرطی است.
اپراتور پیمانه ای
پیش از ورود به بحث عبارت های شرطی بهتر است با یک اپراتور فرعی و پر کاربرد در پایتون آشنا شویم. تا کنون متوجه شده بودیم که اپراتورهای جمع، ضرب، تقسیم و تفریق در پایتون به عنوان اپراتورهای کلیدی وجود دارند و با اپراتور // که خارج قسمت تقسیم را با حذف اعداد اعشاری آن نمایش می داد هم آشنا شدیم. اما اپراتور دیگری هم وجود دارد که آن را اپراتور پیمانه ای یا به صورتی صحیح تر Modulus می نامند. این اپراتور با علامت درصد (به صورت %) نشان داده می شود و عملکرد آن به گونه ای است که در یک تقسیم، به جای نمایش خارج قسمت، باقیمانده را نشان می دهد. مثال زیر را در نظر بگیرید:
در این مثال مشاهده می کنید که ابتدا یک بار متغیر x به عنوان حاصل 7/2 تعریف شده و یک بار 7%2. نتیجه متفاوت این دو خط دستور به خوبی نشان دهنده تفاوت / و % است. اگر 7 را بر 2 تقسیم کنیم، خارج قسمت 3 و باقیمانده 1 است و در صورت استفاده از % باقیمانده نشان داده می شود. شاید در نگاه اول چنین اپراتوری چندان کاربردی نباشد اما در آینده خواهید دید بسیاری از مسائل در پایتون به کمک همین اپراتور تا میزان زیادی ساده می شوند.
عبارت های بولی (Boolean) و عملگرهای نسبی
بولی عبارتی است که یا صحیح (True) است و یا غلط (False). ابتدا این نکته را یادآوری کنیم که عملگر == (دو مساوی پشت سر هم) به معنی “در صورت مساوی بودن” است و در واقع حالت سوالی = را تشکیل می دهد. بدون توضیح بیشتر مثال زیر را در نظر بگیرید.
در ابتدا برابر بودن 100 با 100 مورد سوال قرار گرفته و پاسخ برنامه True است و در حالت دوم برابر بودن 200 با 100 که پاسخ False نشان داده شده. در واقع اینجا 100 = 100 و 100 = 200 عبارت های بولی هستند که یا صحیح و یا غلط خواهند بود.
در اینجا باید به سایر اپراتورهای نسبی که == از جمله آنهاست هم اشاره کنیم:
عملگر | مفهوم |
x != y | x با y برابر نیست |
x > y | x بزرگتر از y است |
x < y | x کوچکتر از y است |
x >= y | x بزرگتر از y یا مساوی با آن است |
x <= y | X کوچکتر از y یا مساوی با آن است |
از این اپراتورها در دستورات شرطی بسیار استفاده خواهیم کرد.
عبارت های شرطی، جایگزین و شرط های زنجیره ای
در 99 درصد موارد نوشتن یک برنامه خوب حتما به عبارت های شرطی نیاز دارد زیرا همواره باید شرایط مختلف را بررسی کرده و عکس العمل های لازم را برای هر حالت در برنامه پیش بینی کرد. عبارت های شرطی این توانایی را به برنامه نویسان اهدا می کنند. ساده ترین عبارت شرطی در پایتون if (به معنی اگر) است. پس از if همیشه از یک عبارت بولی استفاده می شود که در اصطلاح “شرط” نام دارد. اگر عبارت بولی صحیح باشد آنچه در ادامه if آمده اجرا می شود و اگر عبارت بولی صحیح نباشد if و دستور آن در نظر گرفته نمی شوند. هیچ محدودیتی برای تعداد شرط هایی که در یک برنامه به کار گرفته می شوند وجود ندارد. بلافاصله پس از دستور if باید با دستور else (به معنی در غیر این صورت) هم آشنا شویم. مثال زیر به خوبی نشان دهنده ترکیب این دو دستور است:
به کارگیری از else نوعی دستور جایگزین است زیرا عنوان می کند اگر عبارت بولی if نادرست بود کار دیگری انجام شود. به نحوه نوشتن دستورات if و else، فاصله ای که خط پایین تر از ابتدای سطر دارد و همچنین دو نقطه ها توجه کنید زیرا در غیر این صورت با خطاهای ساختاری روبرو خواهید شد.
حالت دیگر در زمان استفاده از عبارت های شرطی، به کارگیری شرط های زنجیره ای است. در مثال بالا سوال این بود که آیا متغیر x از 50 بزرگتر است یا خیر؟ تنها همین دو حالت در نظر گرفته می شدند. اما در مثال پایین که نمونه ای از شرط های زنجیره ای است می توانید چندین شرط مختلف را با هم در یک برنامه داشته باشید:
در این مثال ابتدا شرط اول در نظر گرفته می شود و در صورت صحیح بودن دستور ادامه آن انجام می شود. در صورت صحیح نبودن شرط اول، شرط دوم بررسی می شود و به همین ترتیب تا انتها دستورات ادامه پیدا می کنند. همان طور که مشاهده کردید برای استفاده از شرط های زنجیره ای از دستور elif استفاده می شود که کوتاه شده else if (در غیر این صورت اگر…) است. برای استفاده از شرط های زنجیره ای هم هیچ محدودیتی در برنامه نویسی وجود ندارد.
نکته پایانی در این بخش به خاطر سپردن این نکته است که می توانید از عبارت های شرطی درون عبارت های شرطی دیگر استفاده کنید. برای مثال پس از استفاده از دستور else می توانید بلافاصله یک شرط دیگر با if در نظر بگیرید که خودش دارای یک else دیگر است. به کارگیری از این دستورات شرطی تو در تو به nested conditional معروف است.
با سلام
از ایجاد بخش آموزش برنامه نویسی با زبان شیرین پایتون تشکر می کنم و مراتب قدردانی خود را لازم می دانم که اعلام نمایم.لطفا نحوه استفاده از ویرایشگر اتم را هم بیان بفرمائید با سپاس
من این بخش از برنامه نویسی رو با تور ترکیه که رفته بودم سفر یاد گرفتم.