آموزش

حلقه for در پایتون؛ آموزش for، range، break و continue

جلسه ۱۶ آموزش پایتون: حلقه for و پیمایش داده‌ها در جلسه‌های قبل یاد گرفتیم که پایتون چگونه با استفاده از if elif و else تصمیم‌گیری می‌کند و در جلسه ۱۵ با حلقه while یاد گرفتیم چگونه یک بخش از برنامه را چندین بار اجرا کنیم. اما یک سؤال مهم باقی می‌ماند اگر بخوا…

6 دقیقه مطالعه
  • پشتیبانی شبکه
  • کنیم
  • حلقه
  • پایتون
  • number
  • می‌کند
  • لیست
  • جلسه

خلاصه تحلیلی خبر

جلسه ۱۶ آموزش پایتون: حلقه 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اولین بار درپایگاه خبری ارتباطات و فناوری اطلاعات. پدیدار شد.

برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمای پشتیبانی شبکه را نیز مطالعه کنید.