در مقاله قبلی نوع اول حلقه ها یعنی حلقه های while در پایتون را برای شما تشریح کردیم حال نوبت به حلقه های for رسیده است که در این مقاله آن را برای شما توضیح می دهیم.
حلقه for برای پیمایش اشیا قابل پیمایش (Lists , Tuples , Sets , Dictionaries , String) استفاده می شود.
حلقه for درپایتون بیشتر از این که شبیه کلمه کلیدی for در سایر زبان های برنامه نویسی باشد، شبیه پیمایش اشیا در سایر زبان های برنامه نویسی شی گرا است.
با حلقه for می توانیم مجموعه ای از دستورات را به ازای هر آیتم در Lists ، Tuples ، Sets وDictionaries یک بار اجرا کنیم.
مثال: در این مثال به ازای هر آیتم دستورات یک بار اجرا می شوند.
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
حلقه های for در پایتون از قبل به ایندکس گذاری متغیر ها نیاز ندارند.
پیمایش رشته ها
رشته ها اشیا قابل پیمایش هستند، آن ها دنباله ای از کاراکتر ها هستند.
مثال: در این مثال حروف کلمه “banana” پیمایش می شوند.
for x in "banana":
print(x)
دستور break
با دستور break ما می توانیم یک حلقه for را قبل از پیمایش همه آیتم ها بشکنیم و از آن خارج شویم.
مثال: در این مثال زمانی که مقدار x برابر “banana” است از حلقه خارج می شود.
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break
مثال: در این مثال هم زمانی که مقدار x برابر “banana” است از حلقه خارج می شود اما خارج شدن قبل از چاپ در خروجی انجام می گیرد.
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
break
print(x)
دستور continue
با این دستور می توانیم از پیمایش مقدار فعلی حلقه صرف نظر کنیم و ادامه دستورات را اجرا کنیم.
مثال: در این مثال از چاپ آیتم “banana” صرف نظر می کند.
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
continue
print(x)
تابع range
برای پیمایش مجموعه ای از کدها به تعداد مشخص از تابع range() استفاده می کنیم.
این تابع توالی اعداد را برمی گرداند، به طور پیش فرض از 0 شروع می شود و هر بار 1 واحد افزایش می یابد و به شماره مشخص شده ای ختم می شود.
مثال: در این مثال با استفاده از تابع range() اعداد از 0 تا 5 را چاپ می کند.
for x in range(6):
print(x)
نکته: دامنه 6 مقادیر 0 تا 6 را شامل نمی شود، بلکه مقادیر 0 تا 5 را شامل می شود.
در تابع range() به طور پیش فرض مقدار شروع 0 است، اما می توان با افزودن یک پارامتر مقدار آن را تغییر داد.
Range(2,6) که به این معنی است، مقدار شروع 2 و مقدار پایان 6 است اما شامل خود عدد 6 نمی شود.
مثال: در این مثال ما پارامتر شروع را مشخص کرده ایم و مقدار آن 2 است.
for x in range(2, 6):
print(x)
و همچنین به طور پیش فرض گام پرش در تابع range() 1 است اما می توان با افزودن پارامتر سوم به این تابع گام پرش را نیز تعیین کرد.
مثال: در این مثال گام پرش را با مقدار 3 مقداردهی کرده است (پیش فرض 1 است)
for x in range(2, 30, 3):
print(x)
دستور else در حلقه های for
کلمه کلیدی else در حلقه های for یک بلوک از کد هستند که پس از اتمام حلقه اجرا خواهند شد.
مثال: در مثال زیر اعداد 0 تا 5 را چاپ کرده و پس از آن پیغام بلوک کد else چاپ می شود.
for x in range(6):
print(x)
else:
print("Finally finished!")
نکته: اگر حلقه for توسط break متوقف شود بلوک کد else اجرا نخواهد شد.
مثال: در این مثال حلقه با مقدار x = 3 شکسته می شود و بلوک کد else اجرا نمی شود.
for x in range(6):
if x == 3: break
print(x)
else:
print("Finally finished!")
حلقه های تو در تو (nested loops)
به حلقه ای داخل حلقه دیگر حلقه تو در تو می گویند.
حلقه داخلی به ازای هر تکرار حلقه خارجی یک بار اجرا می شود.
مثال: در این مثال همه صفات را برای هر میوه در خروجی چاپ می کند.
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
for y in fruits:
print(x, y)
دستور pass
بلوک حلقه های for نمی توانند خالی از کد باشند اما اگر حلقه for دارید که خالی از محتوا است، از دستور pass برای جلوگیری از بروز خطا استفاده کنید.
مثال: در این مثال یک حلقه for بدون محتوای کد داخلی داریم که برای جلوگیری از بروز خطا از دستور pass استفاده کرده ایم.
for x in [0, 1, 2]:
pass
خب در این مقاله پرونده حلقه ها را بستیم و یاد گرفتیم که چگونه از آن ها استفاده کنیم.