آموزش

حلقه‌ها در پایتون

A comprehensive introductory tutorial to Python loops. Learn and practice while and for loops, nested loops, the break and continue keywords, the range function and more!

تاریخ انتشار:
30 خرداد 1405
پایتون
15 دقیقه
کاربرهای فینکا در چه شرکت‌هایی مشغول به کار هستند؟

حلقه‌ها در پایتون یا هر زبان برنامه‌نویسی دیگه‌ای خیلی مهمن، چون بهت کمک می‌کنه تا یک تکه کد رو بارها و بارها اجرا کنی. اغلب با شرایطی روبرو می‌شی که لازمه از یک قطعه کد بارها استفاده کنی، اما نمی‌خوای یک خط کد رو چند بار بنویسی.

در این آموزش حلقه‌های پایتون، با این موضوعات آشنا می‌شی:

  • حلقه while: یاد می‌گیری چطور یک حلقه while بسازی و ازش در کاربردهای علم داده استفاده کنی. این کار رو با انجام چند چالش کدنویسی تعاملی یاد می‌گیری.
  • بعد به سراغ حلقه for می‌ری: اینجا هم یاد می‌گیری که چطور یک حلقه for بسازی و در یک زمینه واقعی ازش استفاده کنی.
  • همچنین تفاوت بین استفاده از حلقه while و حلقه for رو یاد می‌گیری.
  • در ادامه مبحث حلقه‌های تو در تو بررسی می‌شه.
  • پس از اون، می‌بینی که چطور می‌تونی از کلمات کلیدی break و continue استفاده کنی.
  • در نهایت با تفاوت بین توابع xrange() و range() آشنا می‌شی.

حلقه While

حلقه while احتمالا یکی از اولین حلقه‌هاییه که وقتی برنامه‌نویسی رو شروع می‌کنی باهاش روبرو می‌شی. می‌شه گفت این حلقه یکی از قابل‌فهم‌ترین حلقه‌هاست: اگر به اسم این حلقه فکر کنی، خیلی زود متوجه می‌شی که کلمه while به یک بازه زمانی مربوط می‌شه. همون‌طور که تا الان می‌دونی، کلمه حلقه به بخشی از کد اشاره داره که اون رو بارها و بارها اجرا می‌کنی.

با در نظر گرفتن این موارد، می‌تونی خیلی راحت تعریف زیر رو درباره حلقه while متوجه بشی:

حلقه while یک مفهوم برنامه‌نویسیه که وقتی پیاده‌سازی می‌شه، یک قطعه کد رو تا زمانی که یک شرط خاص همچنان درست (True) باشه، مدام تکرار می‌کنه.

تعریف بالا همچنین نشون‌دهنده سه بخش اصلیه که برای ساختن حلقه while در پایتون بهشون نیاز داری:

  • کلمه کلیدی while
  • یک شرط که در نهایت به True یا False تبدیل بشه.
  • یک بلوک از کد که می‌خوای به‌صورت مکرر اجرا بشه.

تمام چیزی که نیاز داری همینه!

چطور در پایتون یک حلقه While بسازیم؟

حالا که می‌دونی برای ساختن یک حلقه while به چی نیاز داری، تنها کار باقی‌مونده اینه که قبل از شروع تمریناتت، به یک مثال در دنیای واقعی نگاه کنی که در اون از حلقه while استفاده شده! مثال زیر رو در نظر بگیر:

کد بالا یک نمونه خیلی ساده از حلقه while هست: اگر کمی بهش فکر کنی، می‌بینی که هر سه بخشی که بالا خوندیم اینجا وجود دارن: کلمه کلیدی while، یک شرط که به True یا False ترجمه می‌شه (مثل number < 5) و بلوک کدی که می‌خوای دائما اجرا بشه.

اگر با دقت بیشتری به کد بالا نگاه کنی، می‌بینی که متغیری به اسم number وجود داره که توش عدد صحیح 2 رو ذخیره کردی. چون مقدار متغیر number کوچک‌تر از 5 هست، عبارت "Thank you" رو چاپ می‌کنی و بعدش یک واحد به مقدار number اضافه می‌شه. تا وقتی مقدار number کوچک‌تر از 5 بمونه، به اجرای همون دو خط کدی که در حلقه while قرار دارن ادامه می‌دی:

تو دو بار دیگه عبارت "Thank you" رو چاپ می‌کنی تا اینکه در نهایت مقدار number برابر با 5 می‌شه و شرط دیگه به عنوان True ارزیابی نمی‌شه. چون حالا شرط False در نظر گرفته می‌شه، از حلقه while خارج می‌شی و اگر برنامه کد دیگه‌ای داشته باشه، به اجرای اون ادامه می‌دی. در این مورد خاص، کد دیگه‌ای وجود نداره؛ بنابراین برنامه‌ت متوقف می‌شه.

مثال بالا کمی پیش‌پا افتاده‌ست؛ می‌تونی از دستورات شرطی هم استفاده کنی، یعنی یک شرط if اضافه کنی تا خروجی رو سفارشی‌تر کنی. به این مثال نگاه کن:

خروجی
The number 2 is even
The number 3 is odd
The number 4 is even

حالا وقتشه تمرین کنی!

یک تابع به اسم collatz() بنویس که به کاربر اجازه بده عدد صحیحی رو به عنوان متغیر number وارد کنه. اگر عدد زوج بود، باید نتیجه number/2 رو چاپ کنه. اگر عدد فرد بود، تابع collatz() باید نتیجه 3 * number + 1 رو چاپ کرده و برگردونه. برنامه‌ت باید فراخوانی تابع collatz() رو روی متغیر number تا جایی ادامه بده که در نهایت خروجی 1 رو برگردونه.

توجه کن که این در واقع همون پیاده‌سازی collatz sequence (دنباله کولاتز) هست، که به‌طور خلاصه یک مسئله ریاضیه که عددی رو انتخاب می‌کنی و این محاسبات رو اینقدر تکرار می‌کنی تا نتیجه 1 به دست بیاد.

در پایین می‌تونی راه‌حل رو ببینی:

حلقه for

می‌تونی با حلقه for هم دقیقا مثل حلقه while، کار کنی. قاعدتاً همون‌طور که انتظار داشتی، جزء for در «حلقه for» به کاری اشاره می‌کنه که قراره برای یه تعداد مشخص انجامش بدی.

اگر تمام موارد بالا رو در ذهنت نگه داری، راحت می‌تونی حلقه for رو به شکل زیر تعریف کنی:

یک حلقه for مفهومی در برنامه‌نویسیه که با استفاده از اون می‌تونی بخشی از کد رو برای تعداد دفعاتی معین و با توجه به یک توالی خاص به‌صورت تکراری اجرا کنی.

برعکس حلقه while، اینجا هیچ شرطی در کار نیست؛ فقط بخشی از کد رو برای چند بار به‌صورت پی‌درپی اجرا می‌کنی. به زبان دیگه، همون‌طور که حلقه while تا زمانی که شرطش True باشه به تکرار کد ادامه می‌ده، اما حلقه for، کد درونش رو دقیقاً به تعدادِ خاصی به اجرا در میاره. این «تعداد دفعات» به کمک لیست یا یک دنباله مشخص می‌شه.

یکم جلوتر تفاوت بین حلقه‌های while و for رو بهتر یاد می‌گیری، اما موقتاً فقط روی این بخش‌ها تمرکز کن که برای ایجاد حلقه for لازمشون داری:

  • کلمه کلیدی for
  • یک متغیر
  • کلمه کلیدی in
  • تابع range() که برای ساختن توالی اعداد تعبیه شده.
  • همون قطعه کدی که می‌خوای بارها اجرا بشه.

حلقه‌های for در پایتون

حالا متوجه می‌شی اون اجزایی که در بخش بالایی دیدی، چطور در همین مثال کوچک برای ایجاد حلقه for حاضر می‌شن: کلمه کلیدی for، خودِ متغیر number، در کنارِ کلمه in و استفاده از تابع range()، تا نهایتاً کدی رو که می‌خوای چندبار اجرا بشه قرار بدی، یعنی print("Thank you").

اون‌قدرها هم سخت نیست، درسته؟

بذار یک مثال دیگه از این حلقه رو ببینیم که در اون برای جریان کنترل خودت از دو متغیر مجزا استفاده می‌کنی:

خروجی
Current language: R
Current language: Python
Current language: Scala
Current language: Java
Current language: Julia

دقت کن که تو کار رو با گذاشتن کلمه کلیدی for شروع می‌کنی. سپس از متغیرهای دیگه مثل index و languages، کلمه کلیدی in و همچنین کلمه range() استفاده می‌کنی تا توالی اعداد ایجاد بشه. علاوه بر اینا می‌بینی که در این سناریو به خاطر غیرعددی بودن لیست languages تو تابع len() رو اضافه می‌کنی تا اندازه رشته رو بگیری. اینجا همون قسمتی که قراره دائما اجرا بشه، همون عبارتِ پرینت یعنی print('Current language :', languages[index]) هستش.

توی قطعه‌کد بالا، منظور این بود که به ازای هر اندیس قرار گرفته در محدوده len(languages)، زبان برنامه‌نویسیِ مرتبط با علوم داده جاپ بشه. حالا، چون خروجی تابع len(languages) عدد 5 هست، پس می‌شد اون رو به این فرم هم پیاده کرد:

خروجی
Current language: R
Current language: Python
Current language: Scala
Current language: Java
Current language: Julia

و همونطور که احتمالاً حدس می‌زدی، این کد هم نتیجه مشابه کد قبل رو بهت می‌ده!

تفاوت حلقه‌های while و for در پایتون

بیا دوباره برگردیم و نگاهی بندازیم به همون مثال اول حلقه while تا ببینیم الان دقیقا تفاوت‌ها بین حلقه‌های while و for در چی هستن. تا الان دیدی که این تفاوت‌ها همون حول محور بودن و نبودنِ شروط می‌چرخه، اما سوال اینه که چطور قراره در کدهامون اینا رو پیاده کنیم و کی تشخیص می‌دیم بینشون کدوم رو انتخاب کنیم؟

خروجی
Thank you
Thank you
Thank you

به سادگی می‌تونی برای چاپ "Thank you" و مدیریت راحت‌تر این روند، از حلقه for استفاده کنی:

خروجی
Thank you
Thank you
Thank you

حالا متوجه شدی تعویض کردن فرمول حلقه while با حلقه مشابه for چقدر ساده بود؟

توی یک حلقه for همون عددی که داخل تابع range قرار گرفته همون محدوده یا دفعاتی هست که سیستم باید در حلقه گردش کنه تا بتونه اون کد داخل ساختار for رو کامل و بی‌نقص پردازش کنه.

نکته‌ای که باید توجه داشته باشی اینه که شمارنده‌های توابع range() از 0 شروع به شمردن می‌کنن، نه از 1. این یعنی وقتی مثال بالایی‌ رو نگاه می‌کنی باید حواست باشه سیستم عامل از 0, 1, 2 شروع می‌کنه نه 1, 2, 3! سیستم رایانه‌ها هم همیشه با این رویکرد عملیات‌هاش رو می‌شمره و با عدد کار می‌کنه. برای همین، برای طرح یک حلقه for، بهتره یادت بمونه آغاز محاسبه‌هات روی صفر تنظیم بشه.

توصیه: برای نمونه بد نیست بدونی همین شیوه واسه لیست‌ها در زبان برنامه‌نویسی پایتون صدق می‌کنه. اگر دوست داری درباره ساختار و عملکرد لیست‌های پایتون چیزای بیشتری یاد بگیری، حتماً آموزش 18 سوال رایج درباره لیست‌های پایتون فینکا رو از دست نده.

حالا، بین حلقه‌های while و for یه موضوع جالب دیگه هم باقی مونده. سرعت for در پردازش نسبت به while بیشتره! برای اثباتش می‌تونی این کدهایی که در ادامه اومده رو بررسی کنی.

خروجی
267.0804728891719
خروجی
884.9233417965908

در قطعه کد بالا، دو حلقه با حدود 10000 تکرار داریم. در نگاه اول هر دو مشابه به نظر می‌رسن، تا زمانی که به پشت صحنه نگاه کنی و متوجه بشی این دو حلقه چطور کار می‌کنن. راهنمایی: تابع timeit() بهت سرنخی می‌ده که تفاوت ممکنه کجای کار باشه!

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

وقتی که اجرای حلقه for در مثال بالا شروع می‌شه، مفسر پایتون با کامپایلر C ارتباط برقرار می‌کنه و سپس یک شیء لیست به اندازه 10000 ایجاد می‌کنه. در قدم بعدی یک پیمایشگر رو فرامی‌خونه تا روی اندیس هر کدوم از 10000 عنصر در لیست عمل کنه.

از طرف دیگه، اجرای حلقه while هیچ شیء لیستی ایجاد نمی‌کنه. در واقع، کامپایلر زیربنایی C عملگر مقایسه بولین رو برای شرط i<10000 حدود 9999 بار فرا می‌خونه.

همین الان می‌تونی تصور کنی که پیمایش بر روی یک شیء لیست ساخته‌شده‌ی شامل 10000 عنصر برای کامپایلر خیلی راحت‌تر از انجام پشت سر هم و 9999 باره یک عملگر بولینه. در نتیجه عملکرد زمانی یک حلقه for خیلی بهتر از یک حلقه while هست. این قضیه به‌خوبی تو زمان اجرا انعکاس پیدا می‌کنه: زمانی که برای پایان یافتن حلقه for طی می‌شه خیلی کمتر از زمانیه که حلقه while برای اتمام نیاز داره.

حالا حلقه for رو امتحان کن! یادت نره که بازه رو بین 0 تا 11 مشخص کنی، چون ما قراره فقط اعداد رو تو همون دنباله تا 55 نشون بدیم که این در حقیقت همون عدد یازدهم توالیه.

حلقه‌های تودرتو

همون‌طور که ممکنه تو مثال بالا متوجه شده باشی، یک شرط if-else هم داخل حلقه while وجود داره، که این امکان رو بهت می‌ده تا شرایط مختلف دیگه‌ای رو تو کدهات ایجاد کنی.

صبر کن!

این تنها روشی نیست که بشه باهاش حلقه رو سفارشی‌سازی کرد. تو حتی می‌تونی حلقه‌های while بیشتری هم تو حلقه فعلی جا بدی که به این‌ها حلقه‌های تودرتو می‌گن. با کد زیر می‌تونی همون مثال بالا رو به شکلی تغییر بدی که شامل یک حلقه while دیگه هم بشه:

در مثال بالا یک حلقه while دیگه هم هست که تو دل حلقه بیرونی تعبیه شده. این حلقه درونی یک کنترل دیگه اعمال می‌کنه تا ببینه آیا باقی‌مانده تقسیم متغیر یعنی number % (mod) 2 با 0 برابر می‌شه یا نه.

به بیان دیگه، با این کد چک می‌کنی که عدد زوج هست یا نه، سپس عبارت "The number is even" رو چاپ می‌کنه.

اما یک مشکلی این وسط هست: اگه به کد با دقت نگاه کنی، می‌بینی که برخلاف کد قبلی عبارت number=number+1 اینجا جا افتاده. از اونجایی که مقدار متغیرهای ثبت شده رو هیچ جایی افزایش نمی‌دی، مقادیر همیشه همون‌طور که هستن باقی می‌مونن و کد وارد یک حلقه بی‌نهایت می‌شه. یعنی وقتی یک بار وارد حلقه شد، دیگه هرگز بیرون نمیاد و به دفعات بی‌نهایتی کد رو چاپ می‌کنه چون متغیر number همیشه ثابته و همون 2 می‌مونه. البته این عدد از 5 کوچک‌تره و همون یک عدد هم زوجه.

حالا بیا نگاهی بندازیم و ببینیم یک حلقه تودرتوی for چه‌شکلی می‌شه:

کد بالا نسخه تغییریافته‌ی اولین مثال حلقه for هست. دقت کن که چطور یک حلقه for دوم داخل حلقه‌ی بیرونی قرار گرفته.

حالا کد رو اجرا کن.

می‌بینی که کنترل برنامه وارد اولین حلقه for می‌شه و مقدار متغیر number برابر با 0 قرار می‌گیره. بعد اولین دستور print اجرا می‌شه و سپس کنترل برنامه وارد حلقه for دوم می‌شه؛ جایی که مقدار متغیر another_number برابر با 0 قرار می‌گیره. در این مرحله، اولین دستور print داخل حلقه دوم یک بار اجرا می‌شه.

بعد از اون، کنترل برنامه دوباره به حلقه داخلی برمی‌گرده و مقدار another_number دوباره با عدد صحیح بعدی مقداردهی می‌شه. سپس عبارت داخل تابع print() چاپ می‌شه.

این فرایند تا زمانی ادامه پیدا می‌کنه که کنترل برنامه به انتهای محدوده‌ی تابع range() برسه؛ که در این مثال مقدارش ۵ هست. بعد از اون، کنترل دوباره به حلقه بیرونی برمی‌گرده، متغیر number با عدد صحیح بعدی مقداردهی می‌شه، عبارت داخل تابع print() چاپ می‌شه، برنامه وارد حلقه داخلی می‌شه و دوباره همه‌ی مراحل بالا رو تکرار می‌کنه تا محدوده‌ی تابع range() کامل پیمایش بشه.

این رفت‌وبرگشت کنترل برنامه از حلقه بیرونی به حلقه داخلی و بعد دوباره برگشتن به حلقه بیرونی، تا وقتی ادامه پیدا می‌کنه که کل محدوده طی بشه؛ که در مورد تو، این اتفاق ۳ بار رخ می‌ده.

حالا که چند توضیح درباره حلقه‌های تودرتو خوندی، وقتشه خودت دست‌به‌کار بشی! یک برنامه پایتون بنویس که با استفاده از یک حلقه for تودرتو، الگوی زیر رو بسازه:

کلمات کلیدی break و continue: ساخت حلقه‌های بی‌نهایت

می‌تونی از break و continue در هر حلقه‌ای که می‌سازی استفاده کنی. عملکرد این کلیدواژه‌ها فقط به توقف یک حلقه بی‌نهایت خلاصه نمی‌شه اما خب باید در به کار بردن اون‌ها مراقب باشی! جفت این کلمات کلیدی باعث می‌شن درک روال کنترل جریان حلقه و محل پایان شرط برای خواننده‌های دیگه‌ی کدت (و حتی خودت در چند ماه آینده که دوباره نگاهت به کدها می‌افته) سخت بشه. ضمن این‌که تو در کل، لزومی برای به کار بردن کلیدواژه‌های break و continue نداری: چون تا همین جا دیدیم که بدون اون‌ها هم کار به شکل کاملی پیش می‌ره!

هرچند، در یک سری موارد، نوشتن یک حلقه بی‌نهایت عمدی واضح‌تر از خلق حلقه‌های for و while هست که تا الان دیدی. در این موارد، استفاده از اون‌ها توصیه و تشویق می‌شه!

توقف و ادامه در حلقه‌های while در پایتون

خوشبختانه، یک راه وجود داره تا بشه از وضعیت حلقه بی‌نهایت بیرون اومد و اون به کار بردن کلید واژه break هست.

زمانی‌که کد بالا رو اجرا می‌کنی، می‌بینی دیگه داخل یک حلقه بی‌نهایت پیش نمی‌ره.

ممکنه با تعجب بگی "این چه جادوییه دیگه!". آروم باش، جادو نیست.

اتفاقی که می‌افته اینه که وقتی کنترل‌گر جریان به کلیدواژه break می‌رسه متوجه می‌شه که مجبوره از حلقه حاضر (که تو این مورد، حلقه داخلیه) خارج بشه و خط بعدی رو اجرا کنه. پس، این بخش از کار از حلقه while داخلی خارج و به پروسه بیرونی‌تر وصل می‌شه و روال قبل خودش رو می‌ره تا جریان حلقه بیرونی while مجددا تکرار و تایید بشه.

تو باید این نکته رو در نظر داشته باشی که باید حتما یک خط کامل از کد بعد از کلمه کلیدی break وجود داشته باشه تا بتونه اثرگذار عمل کنه، وگرنه کار نمی‌کنه. می‌تونی حالا این رو برای خط کدهای بالا و جایی که کلیدواژه break به کار رفته امتحان و بعد کدت رو اجرا کنی.

چه اتفاقی می‌افته اگر کلمه کلیدی continue رو بعد از دستور break وارد کنی؟ بیا کدهای پایین رو ادامه بدیم:

کد بالا کمی با ورژن قبلی که برای دستور کلیدواژه break استفاده کردیم متفاوت شده.

وقتی هم که کدهای بالا رو بررسی و اجرا می‌کنی متوجه حضور یک حلقه بی‌نهایت می‌شی. قبل از این‌که کلافه و ناامید بشی، لطفا یک نگاه دقیق‌تر بنداز. حالا می‌بینی که در زمان استفاده کلمه continue یک کدی در کنترل‌گر ایجاد شده تا متغیر number رو دوباره بالا ببره و برای همین دوباره همه چی وارد یک حلقه بی‌نهایت می‌شه.

توقف و ادامه در حلقه‌های for

چه اتفاقی می‌افته اگر نخوای حلقه for درونی رو برای کل بازه تو مثال بالا اجرا کنی؟ تو می‌تونی از دستور break به همون شکلی که تو مثال حلقه while داشتیم استفاده کنی.

در مثال بالا، کلمه کلیدی break بعد از حلقه داخلی طوری کنترل رو هدایت می‌کنه که از حلقه داخلی جدا و سپس به حلقه بیرونی منتقل بشه.

نمونه کد پایین رو ببین:

خروجی
-------------------------------------------
I am outer loop iteration 0
-------------------------------------------
I am outer loop iteration 1
-------------------------------------------
I am outer loop iteration 2

در کد بالا فقط اولین و دورترین حلقه بیرونی اجرا می‌شه و روند کار اصلا روی حلقه داخلی اعمال نمی‌شه.

حتما می‌پرسی چرا؟

یک بار دیگه با دقت به کدها نگاه کن. یک کلیدواژه‌ی continue درست بعد از دومین دستور چاپ در بیرونی‌ترین حلقه قرار گرفته. کاری که این کلیدواژه می‌کنه دقیقا همینه که کنترل رو مجبور می‌کنه به حلقه for بیرونی برگرده و این باعث می‌شه که کنترل هیچ‌گاه روی حلقه داخلی اعمال نشه.

برخلاف حلقه while، در حلقه for اصلا نیازی به قطعه‌کدهای بعد از کلیدواژه break نیست. یک دستور break به‌تنهایی هم به‌خوبی و به همون اندازه تو حلقه for کار خودش رو انجام می‌ده.

تابع ()range

تابع range() در پایتون برای ساختن یک دنباله از عددها استفاده می‌شه. معمولاً از این تابع داخل حلقه for استفاده می‌کنیم تا یک قطعه کد چند بار تکرار بشه.

در پایتون، range() خودش عددها رو یکی‌یکی تولید می‌کنه و لازم نیست همه مقدارها رو از قبل داخل حافظه بسازه. به همین دلیل، برای کار با بازه‌های بزرگ هم انتخاب مناسبیه.

برای درک بهتر نحوه کار range()، به مثال زیر دقت کن:

خروجی
I am number : 5
I am number : 7
I am number : 9

وقتی کد بالا رو اجرا می‌کنی، می‌تونی ببینی که متغیر number چطور با گام 2 تایی حرکت می‌کنه و این دقیقاً به دلیل وجود پارامترها در تابع range() هست.

اولین پارامتر در این تابع پارامتر شروعه. این دقیقا نقطه‌ایه که از همون‌جا کنترل، شمارشش رو شروع می‌کنه. مقیاس دوم نقطه پایانه که مشخص می‌کنه کنترلگر باید کجا متوقف بشه و در نهایت مقیاس و پارامتر آخر، عامل تعیین‌کننده گامه و این رو مشخص می‌کنه که در هر گام کنترلگر چطور باید بشمره.

بنابراین در مثال بالا، کنترلگر از شماره 5 شروع می‌کنه و بعدش حلقه رو 9 دفعه تکرار می‌کنه، در حالی‌که بعد از هر بار شمارش یک عدد 2 تایی اضافه می‌شه. این یعنی 5, 5+2=7, 7+2=9.

تو الان یاد گرفتی تابع range() چطور مشخص می‌کنه حلقه باید چند بار اجرا بشه.

مهارت‌های پایتون خودت رو تقویت کن!

تبریک! تو تونستی به پایان این بخش از آموزش‌ها برسی. الان که تفاوت ساختار حلقه‌ها در پایتون رو بهتر فهمیدی، می‌تونی بیشتر تمرین کنی. هرچی بیشتر تمرین کنی تسلطت خیلی بالاتر می‌ره!

اشتراک‌گذاری
فهرست مطالب
  • حلقه While
  • حلقه for
  • تفاوت حلقه‌های while و for در پایتون
  • حلقه‌های تودرتو
  • کلمات کلیدی break و continue: ساخت حلقه‌های بی‌نهایت
  • تابع ()range
  • مهارت‌های پایتون خودت رو تقویت کن!

دریافت اپلیکیشن فینکا

با اپلیکیشن فینکا، به بیشتر دوره‌ها و مسیرها روی موبایل دسترسی دارید، تمرین می‌کنید و یادگیری رو هم‌زمان روی موبایل و دسکتاپ ادامه می‌دید.