در این شماره به معرفی روشهای دیگری که در برنامه نویسی پایتون جهت ایجاد حلقه استفاده میشود و به طور کلی در اکثر برنامهها این روشها و نحوه تعریف آنها دیده میشود، پرداخته شده است. به طور خلاصه دستوراتی که در این آموزش با آن آشنا میشوید شامل for in, range, break و continue هستند.
نحوه استفاده از دستور for in
حلقه for برای تکرار روی یک دنباله (لیست، تاپل، دیکشنری، مجموعه یا یک رشته) استفاده میشود. این کمتر شبیه کلمه کلیدی for در سایر زبانهای برنامه نویسی است و بیشتر شبیه یک روش تکرارکننده است که در سایر زبانهای برنامه نویسی شی گرا یافت میشود. با حلقه for میتوان مجموعهای از دستورات را، یک بار برای هر آیتم در یک لیست، تاپل، مجموعه و غیره اجرا کرد.
استفاده از حلقه در یک لیست
به طور مثال اگر لیستی از گلها داشته باشیم و بخواهیم هر کدام از آنها را از لیست مورد نظر فراخوانی کنیم میتوان به صورت برنامه نوشته شده در شکل1 اقدام کرد. در این مثال دستور for یک متغیر دلخواه به نام x را گرفته و در یک دنباله جستجو میکند و میتوان با دستور print محتوا دنباله را چاپ کرد. لازم به ذکر است حلقه for نیازی به یک متغیر ایندکس شده برای تنظیم از قبل ندارد.
شکل 1) نحوه استفاده از دستور for in در یک لیست
استفاده از حلقه در یک رشته
حتی رشتهها نیز اشیاء تکرارپذیری هستند. آنها حاوی یک دنباله از کاراکترها هستند. شکل ۲، نحوه استفاده از دستور for in در یک رشته را نشان میدهد. همانطور که در این شکل مشاهده میکنید متغیر x بر روی تک تک کاراکترها حرکت کرده و آنها را چاپ میکند.
شکل 2) نحوه استفاده از دستور for in در یک رشته
میتوان چند رشته را با استفاده از دستور for in به صورت مستقل نشان داد. در این حالت رشتهها به صورت تاپل تعریف میشوند. شکل 3، نمایش دو رشته را نشان میدهد. در این شرایط هر رشته یک ایندکس (شاخص) به خود اختصاص میدهد.
شکل 3) نحوه استفاده از دستور for in در یک تاپل
تابع ()range
برای حلقه زدن مجموعهای از کدها به تعداد مشخص، میتوان از تابع ()range استفاده کرد. تابع ()range دنبالهای از اعداد را برمیگرداند که به طور پیشفرض از 0 شروع میشود و به صورت پیشفرض 1 واحد افزایش مییابد، و در نهایت به یک عدد مشخص ختم میشود. توجه داشته باشید که (4)range مقادیر 0 تا 4 نیست، بلکه مقادیر 0 تا 3 است. تابع ()range بهعنوان مقدار شروع بهطور پیشفرض روی 0 قرار میگیرد، اما میتوان مقدار شروع را با افزودن یک پارامتر تعیین کرد. به طور مثال (5, 1)range که به معنای مقادیر از 1 تا 5 است (اما شامل 5 نمیشود). تابع ()range پیشفرض دنباله را 1 افزایش میدهد، با این حال میتوان مقدار افزایش را با افزودن پارامتر سوم تعیین کرد. به طور مثال دستور (4، 15، 2) rang، از عدد 2 شروع میشود و با گام 4 پیش میرود. اعدادی که شامل این دستور میشوند عبارتند از:2، 6، 10، 14.
برای درک بهتر موضوع میتوانید نمرات 4 نفر از دانشجویان را با استفاده از دستور for in و به کمک دستور range فراخوانی کنید. شکل 4 چگونگی نوشتن برنامه جهت این هدف را نشان میدهد. در ابتدا اسامی و نمرات دانشجویان در دو متغیر a و b ذخیره میشود. سپس با توجه به اینکه باید تک تک اسامی و نمرات به طور مجزا نمایش داده شود، ابتدا تعداد دانشجویان با کمک دستور len مشخص و به تعداد نفرات با استفاده از دستور range شاخص تعریف میشود. در دستور print برای نمایش بهتر نمرات دانشجویان، عبارتهای دلخواه را به صورت رشته میتوان تعریف کرد. جهت درک بهتر نحوه استفاده از دستورات ذکر شده میتوانید به مثالی که در شکل 4 نشان داده شده است توجه کنید.
شکل 4) نحوه استفاده از دستور for in جهت نمایش نمرات در یک لیست
برای نمایش اسامی و نمرات دانشجویان به دلخواه، میتوان یک متغیر تعریف و شماره جایگاه نفرات منتخب را در متغیر ذخیره و سپس به کمک دستور for in فراخوانی کرد. شکل 5 نحوه استفاده از دستور for in جهت نمایش نمرات تعدادی از دانشجویان را نشان میدهد.
شکل 5) نحوه فراخوانی نمرات دلخواه با تعریف شاخص
دستور break
با دستور break میتوان حلقه را پیش از آنکه تمام آیتمها را حلقه کند متوقف کرد. برای اطلاعات بیشتر به مثال شکل 6 توجه کنید. در این مثال پس از رسیدن به گل Orchid از حلقه خارج میشود و دیگر گل Lily نمایش داده نمیشود.
شکل 6) استفاده از دستور break در حلقه
از روش دیگری نیز میتوان از دستور break استفاده کرد. شکل 7 نحوه تعریف این دستور را نشان میدهد.
شکل 7) نحوه تعریف دستور break در حلقه
استفاده از دستور continue
با کمک دستور continue میتوان تکرار فعلی حلقه را متوقف کرده و به صورت مثال ذکر شده در شکل 8 ادامه داد. دستور continue مانند دستور break حالت عادی کار حلقه for را تغییر میدهد. دستور continue برای پرش از روی کل دستوراتی که درون حلقه برای تکرار فعلی نوشته شده است، کاربرد دارد. حلقه for متوقف نمیشود اما به حلقه فعلی پاسخی نمیدهد و روال کار را از تکرار بعدی از سر میگیرد. همانطور که در شکل 8 مشاهده میکنید با توجه به اینکه مقدار x برابر Lily شده است و از دستور continue استفاده شده است، عبارت Lily چاپ نشده و دستور حلقه بعدی که چاپ عبارت Lotus است اجرا میشود.
شکل 8) نحوه استفاده از دستور continue
دیدگاه ها