حلقه for در پایتون؛ آموزش for، range، break و continue
جلسه ۱۶ آموزش پایتون: حلقه for و پیمایش دادهها در جلسههای قبل یاد گرفتیم که پایتون چگونه با استفاده از if elif و else تصمیمگیری میکند و در جلسه ۱۵ با حلقه while یاد گرفتیم چگونه یک بخش از برنامه را چندین بار اجرا کنیم. اما یک سؤال مهم باقی میماند اگر بخوا…
خلاصه تحلیلی خبر
جلسه ۱۶ آموزش پایتون: حلقه for و پیمایش دادهها در جلسههای قبل یاد گرفتیم که پایتون چگونه با استفاده از if elif و else تصمیمگیری میکند و در جلسه ۱۵ با حلقه while یاد گرفتیم چگونه یک بخش از برنامه را چندین بار اجرا کنیم. اما یک سؤال مهم باقی میماند اگر بخوا…
موضوعات اصلی: پشتیبانی شبکه، کنیم، حلقه، پایتون، number، میکند
جلسه ۱۶ آموزش پایتون: حلقه for و پیمایش دادهها
در جلسههای قبل یاد گرفتیم که پایتون چگونه با استفاده ازifelifوelseتصمیمگیری میکند و در جلسه ۱۵ باحلقهwhileیاد گرفتیم چگونه یک بخش از برنامه را چندین بار اجرا کنیم.
اما یک سؤال مهم باقی میماند
اگر بخواهیم روی تکتک اعضای یک لیست، رشته یا مجموعهای از دادهها عملیات انجام دهیم، چه کار باید کنیم؟
اینجاست کهحلقه for در پایتونوارد میشود.
تحقیق و تدوینمهدی گمرکی
در این جلسه چه یاد میگیریم؟
در پایان این درس با موارد زیر آشنا خواهید شد
- حلقه
forدر پایتون چیست؟ - نحوه نوشتن حلقه
for - پیمایش لیستها
- پیمایش رشتهها
- استفاده از تابع
range() - استفاده از
forهمراه باif - دستورهای
breakوcontinueدر حلقهfor - حلقههای تو در تو
- خطاهای رایج هنگام استفاده از
for - چند تمرین برای تسلط بیشتر
حلقه for در پایتون چیست؟
حلقهforبرایتکرار یک عملیات روی مجموعهای از دادههااستفاده میشود.
برای مثال، فرض کنید لیستی از نام چند دانشجو داریم
students=["Ali""Sara""Reza""Mina"]اگر بخواهیم نام همه دانشجوها را چاپ کنیم، لازم نیست برای هر کدام یکprintجداگانه بنویسیم.
میتوانیم ازforاستفاده کنیم
students=["Ali""Sara""Reza""Mina"]forstudentinstudentsprint(student)خروجی
Ali Sara Reza Minaدر اینجا پایتون یکییکی اعضای لیست را در متغیرstudentقرار میدهد و دستورprintرا اجرا میکند.
ساختار کلی حلقه for
ساختار ساده حلقهforبه شکل زیر است
forvariableiniterable# codeبرای مثال
fornumberin[12345]print(number)در هر مرحله، یکی از اعداد داخل متغیرnumberقرار میگیرد.
یعنی تقریباً این اتفاق رخ میدهد
number = 1 number = 2 number = 3 number = 4 number = 5و برای هر مرحلهprint(number)اجرا میشود.
پیمایش لیست با for
یکی از مهمترین کاربردهایforپیمایش لیستهاست.
مثلاً
fruits=["apple""banana""orange"]forfruitinfruitsprint(fruit)خروجی
apple banana orangeاما میتوانیم عملیات بیشتری نیز روی هر عضو انجام دهیم.
prices=[100200300]forpriceinpricesprint(price*2)خروجی
یعنی پایتون هر عضو را دریافت کرده و عملیات موردنظر ما را روی آن انجام میدهد.
پیمایش رشته با for
یکی از ویژگیهای جالب پایتون این است که میتوانیم روی رشتهها نیز حلقه ایجاد کنیم.
مثلاً
word="Python"forletterinwordprint(letter)خروجی
P y t h o nدر این مثال، پایتون رشته را کاراکتر به کاراکتر بررسی میکند.
این قابلیت در پردازش متن، جستوجوی کاراکترها و بسیاری از پروژههای واقعی کاربرد دارد.
تابع range() در پایتون
گاهی اوقات نمیخواهیم روی یک لیست مشخص حرکت کنیم؛ بلکه میخواهیم یک عملیات را تعداد مشخصی از دفعات اجرا کنیم.
در این شرایط، تابعrange()بسیار کاربردی است.
مثلاً
fornumberinrange(5)print(number)خروجی
0 1 2 3 4نکته مهم این است کهrange(5)اعداداز ۰ تا قبل از ۵را تولید میکند.
پس
range(5)یعنی
0, 1, 2, 3, 4شروع و پایان در range()
میتوانیم نقطه شروع را نیز مشخص کنیم
fornumberinrange(26)print(number)خروجی
2 3 4 5ساختار آن
range(startstop)است.
عددstopدر خروجی قرار نمیگیرد.
تعیین گام در range()
حتی میتوانیم مشخص کنیم اعداد با چه فاصلهای تولید شوند
fornumberinrange(0102)print(number)خروجی
0 2 4 6 8در اینجا عدد سوم یعنی2گام حرکت است.
ترکیب for با if
یکی از کاربردهای مهم حلقهforترکیب آن با دستورات شرطی است.
مثلاً فرض کنید میخواهیم فقط اعداد زوج را از یک لیست پیدا کنیم
numbers=[12345678]fornumberinnumbersifnumber%2==0print(number)خروجی
2 4 6 8اینجا حلقهforروی تمام اعداد حرکت میکند وifبررسی میکند که آیا عدد زوج است یا خیر.
این دقیقاً همان جایی است که مباحث جلسات قبلی به یکدیگر متصل میشوند
حلقه + شرط = امکان ساخت منطقهای کاربردیتر
دستور break در حلقه for
در جلسه قبل باbreakآشنا شدیم.
این دستور در حلقهforنیز قابل استفاده است و باعث میشود حلقهبهطور کامل متوقف شود.
مثلاً
numbers=[12345]fornumberinnumbersifnumber==3breakprint(number)خروجی
1 2وقتی پایتون به عدد3میرسدbreakاجرا شده و حلقه پایان پیدا میکند.
دستور continue در حلقه for
continueبرخلافbreakکل حلقه را متوقف نمیکند.
این دستور فقط باعث میشوداجرای همان تکرار فعلی رد شودو حلقه به سراغ مرحله بعدی برود.
مثلاً
numbers=[12345]fornumberinnumbersifnumber==3continueprint(number)خروجی
1 2 4 5عدد3چاپ نشده است، اما حلقه همچنان ادامه پیدا کرده است.
تفاوت مهم
break
کل حلقه را متوقف میکند.
continue
فقط تکرار فعلی را رد میکند.
حلقههای for تو در تو
گاهی لازم است یک حلقه را داخل حلقه دیگری قرار دهیم. به این ساختارحلقه تو در تویاnested loopمیگوییم.
مثلاً
foriinrange(3)forjinrange(2)print(ij)در این حالت، حلقه داخلی برای هر بار اجرای حلقه بیرونی اجرا میشود.
حلقههای تو در تو در مواردی مانند کار با جدولها، ماتریسها و دادههای چندبعدی بسیار کاربرد دارند.
یک مثال کاربردی
فرض کنید میخواهیم نمرات چند دانشآموز را بررسی کنیم و مشخص کنیم چه کسانی نمره قبولی گرفتهاند
scores=[18129167]forscoreinscoresifscore>=10print("قبول:"score)elseprint("مردود:"score)خروجی
قبول: 18 قبول: 12 مردود: 9 قبول: 16 مردود: 7در این مثال چند مفهوم را همزمان استفاده کردیم
- لیست
- حلقه
for - شرط
if - عملگر مقایسهای
- خروجی گرفتن با
print
این ترکیبها پایه بسیاری از برنامههای واقعی هستند.
یک اشتباه رایج در حلقه for
یکی از اشتباهات رایج، فراموش کردندر پایان خطforاست.
اشتباه
fornumberinnumbersprint(number)درست
fornumberinnumbersprint(number)همچنین باید بهتورفتگی یا indentationتوجه کنیم.
در پایتون، تورفتگی فقط برای زیبایی کد نیست؛ بخشی از ساختار برنامه است.
for یا while؟ کدام را استفاده کنیم؟
حالا که با هر دو حلقه آشنا شدهایم، بهتر است تفاوت آنها را بدانیم.
زمانی که for مناسبتر است
وقتی میدانیم میخواهیم روی یک مجموعه یا تعداد مشخصی از دادهها حرکت کنیم
foriteminitemsprint(item)زمانی که while مناسبتر است
وقتی ادامه پیدا کردن حلقه به یک شرط وابسته است و تعداد تکرارها از قبل مشخص نیست
whilecondition# codeبه زبان ساده
for بیشتر برای پیمایش و تکرار مشخص کاربرد دارد.
while بیشتر برای تکرار وابسته به شرط کاربرد دارد.
البته در پایتون بسیاری از مسائل را میتوان با هر دو روش حل کرد.
تمرینهای جلسه ۱۶
برای اینکه مطالب این جلسه کاملاً جا بیفتد، تمرینهای زیر را انجام دهید.
تمرین ۱
برنامهای بنویسید که اعداد1تا10را چاپ کند.
تمرین ۲
برنامهای بنویسید که فقط اعداد زوج بین1تا20را نمایش دهد.
تمرین ۳
یک لیست از نام چند نفر ایجاد کنید و باforنام همه آنها را چاپ کنید.
تمرین ۴
برنامهای بنویسید که اعداد یک لیست را بررسی کند و فقط اعداد بزرگتر از10را نمایش دهد.
تمرین چالشی
برنامهای بنویسید که از1تا100حرکت کند و
- اگر عدد بر
3بخشپذیر بود، عبارتFizzرا چاپ کند. - اگر بر
5بخشپذیر بود، عبارتBuzzرا چاپ کند. - اگر هم بر
3و هم بر5بخشپذیر بودFizzBuzzرا چاپ کند. - در غیر این صورت خود عدد را چاپ کند.
این تمرین یکی از تمرینهای شناختهشده برای تقویت مهارت حل مسئله و ترکیبحلقه و شرطاست.
جمعبندی جلسه ۱۶
در این جلسه با یکی از مهمترین ساختارهای کنترلی پایتون، یعنیحلقه for در پایتونآشنا شدیم.
یاد گرفتیم که چگونه
- روی اعضای یک لیست حرکت کنیم؛
- کاراکترهای یک رشته را بررسی کنیم؛
- با
range()تعداد مشخصی تکرار ایجاد کنیم؛ forرا باifترکیب کنیم؛- با
breakحلقه را متوقف کنیم؛ - با
continueیک تکرار را رد کنیم؛ - و از حلقههای تو در تو استفاده کنیم.
تا اینجا برنامههای ما دیگر فقط مجموعهای از دستورهای پشت سر هم نیستند. حالا میتوانیم به برنامه بگوییمتصمیم بگیرد و یک کار را چندین بار تکرار کند.
درجلسه ۱۷یک قدم مهمتر برمیداریم و سراغلیستها در پایتون و کار با دادههای چندتاییمیرویم؛ جایی که یاد میگیریم چگونه دادهها را ایجاد، تغییر، حذف و مدیریت کنیم و با متدهای مهم لیست کار کنیم.
تحقیق و تدوینمهدی گمرکی
نوشتهحلقه for در پایتون؛ آموزش for، range، break و continueاولین بار درپایگاه خبری ارتباطات و فناوری اطلاعات. پدیدار شد.
برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمای پشتیبانی شبکه را نیز مطالعه کنید.