جشنواره داغ پاییز 1401 آکادمی آی تی شروع شد -----% 50 ------ تخفیف ویژه برای کلیه دوره ها و پیکج ها
برای آینده ات برنامه ریزی کن

آموزش حلقه while در پایتون

حالت مطالعه

آموزش حلقه وایل در پایتون

 

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

 

آموزش حلقه while در پایتون

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

while(condition):

    code to loop;

 

می بینید که ساختار While به سادگی ساختار if است. ابتدا یک شرط با مقدار بولی می نویسیم و اگر نتیجه درست یا نادرست باشد، کد داخل بلوک اجرا می شود. اگر شرط نادرست باشد، برنامه با رسیدن به حلقه از هیچ کدی پیروی نمی کند. برای جلوگیری از ایجاد حلقه باید مقادیر داخل حلقه را اصلاح کرد.

ما به یک متغیر شمارنده در بدنه حلقه نیاز داریم. این شمارنده برای آزمایش شرایط استفاده می شود و به اینکه آیا حلقه ادامه یابد یا متوقف شود بستگی دارد. باید این شمارنده ها را در درون بدنه کم یا زیاد کنیم. برنامه زیر نحوه استفاده از حلقه While را به شما نشان می دهد:

 

1 counter = 1;

 2

 3 while (counter <= 10):

 4     print("Hello World!");

 5     counter = counter + 1;

 

در برنامه بالا بیش از 10 بار پیغام Hello World! را چاپ می ‌کند. اگر از حلقه در مثال بالا استفاده نمی کردیم، باید تمام ده خط را تایپ کنیم. بیایید به سیستم کد بالا نگاه کنیم. ابتدا، تغییر در خط 1 ما یک متغییر تعریف می کنیم که به عنوان حلقه شمارنده استفاده می شود. سپس به آن مقدار 1 می دهیم زیرا اگر مقداری ندهیم نمی توان در شرط از آن بهره برد.

در خط 3 یک حلقه while وارد کنید. در یک حلقه while، مقدار شمارنده اولیه ابتدا با 10 مقایسه می شود، چه کمتر از 10 یا مساوی باشد. نتیجه مقایسه بین ورود به بدنه یک حلقه  While و چاپ هر بار یک پیام است. همانطور که مشاهده می کنید پس از هر مقایسه مقدار شمارنده یک واحد اضافه می شود (خط 5). چرخه تا زمانی که مقدار شمارنده کمتر از 10 شود تکرار می شود.

اگر مقدار شمارنده ثابت بماند و آن را افزایش ندهیم یا مقدار شرط هرگز false نباشد، یک حلقه بی نهایت ایجاد می شود. توجه داشته باشید که موقعیت فوق به جای < از <= استفاده می کند. اگر از فرکانس < استفاده کنید کد ما 9 بار تکرار می شود زیرا مقدار اولیه 1 است و زمانی که شرط به 10 می رسد نادرست است زیرا 10 <10 نیست. اگر می ‌خواهید حلقه‌ای ایجاد کنید که هرگز تمام نمی ‌شود، باید موقعیتی ایجاد کنید که همیشه درست (true) باشد.

while(True):

   #code to loop

این روش در برخی موارد جواب می دهد و این زمانی است که می خواهید با استفاده از دستور break و return از حلقه خارج شوید.

 

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

ما دو نوع حلقه اصلی در زبان برنامه نویسی پایتون داریم:

        حلقه while

       حلقه for

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

اگر کمی خلاقیت را در کار خود به کار ببرید، احتمالاً می توانید این دو نوع حلقه را به هم تبدیل کرده و به جای هم استفاده کنید. اما بهتر است هر کدام را در جای مناسب خود بنویسید.

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

اگر این شرط برقرار باشد، قطعه کد در حلقه اجرا می شود. پس از هر بار اجرای کد، وضعیت مورد نظر مجددا بررسی خواهد شد. اگر شرط برآورده نشد، از حلقه خارج می شود و برنامه به اجرای خود ادامه می دهد.

همچنین بخوانید : آموزش حلقه for در پایتون

 

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

با استفاده از حلقه while می توانیم مجموعه ای از کدها را تا زمانی که شرط ما برآورده شده است اجرا کنیم.

سینتکس حلقه while در پایتون به صورت زیر است:

 

while condition:

    #code

شرط ما همان  Condition است که در خروجی باید درست یا نادرست باشد.

فرض کنید یک متغیر به نام Academyit داریم. ما می خواهیم مقدار حداقل 5 را چاپ کنیم. به کد قطعه زیر توجه کنید:

Academyit= 1

while Academyit <5:

    print(Academyit)

            Academyit +=1

ما شرط حلقه را تعریف کرده ایم در حالی که <5 Academyit است. در قسمت اصلی حلقه، مقدار متغیر را چاپ می کنیم و در نهایت مقدار آن را در یک واحد ضرب می کنیم.

اگر مقدار متغیر را در خط آخر افزایش ندهیم، چرخه ما به طور نامحدود ادامه می یابد.

در چنین شرایطی اغلب گفته می شود که با یک حلقه Infinitive Loop مواجه هستیم.

عملکرد این قطعه کد به شرح زیر است:

1

2

3

4

 

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

حلقه For، همچنین به عنوان حلقه for in  در پایتون شناخته می شود، که معمولاً برای (Traversal) کاربرد زیادی دارد.

فرض کنید یک تاپل در پایتون دارید. این تاپل نوعی توالی از اعضای خود را به ما می دهد. اگر بخواهیم روی هر یک از این اعضا حرکت یا اسکرول کنیم، از حلقه For استفاده می کنیم.

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

ساختار کلی حلقه for در پایتون به شرح زیر است:

 

for Value in Sequence:

    #execution and use of Value

ترکیب حلقه دارای سه جزء اصلی است:

مقدار (Value): نام متغیری است که هر یک از اعضای مجموعه در هر بار اجرای حلقه در آن قرار می گیرند.

Sequence: منظور همان مجموعه ای است که می توان آن را پیمایش کرد.

بدنه حلقه: کدهایی که در هر بار اجرا شدن حلقه پردازش می ‌شوند.

تصور کنید لیستی از اسامی 5 نفر را در اختیار داریم. با استفاده از کد زیر، تابع آدرس را در لیست انجام خواهیم داد:

 

names = ["Nazanin", "Mehran", "Omid", "Melisa", "sina"]

for name in names:

    print("Hello " + name + "!")

نتایج خروجی اجرای این حلقه به شرح زیر خواهد بود:

نتیجه اجرای مثال حلقه for پایتون

یک رشته در پایتون نیز یک مجموعه است. مجموعه کاراکترهایی که رشته متن را تشکیل می دهند. بنابراین با یک for در حلقه، می توانید به هر کاراکتر در یک رشته بروید.

 

string = " be academy it khosh omadid"

i = 0

for char in string:

    i+=1

 

print("Lenght is: " + str(i))

در قطعه کد فوق، با کمک حلقه for تعداد کاراکترهای رشته string را می توان محاسبه کرد.

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

 

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

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

رشته For اشیاء شیء قابل تکرار را پیمایش می کند، در حالی که رشته while پیمایش می کند تا شرط نوشته شده True شود.

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

 

حلقه while-else

مانند حلقه های For، حلقه while-else نیز می توانند یک بلوک else اختیاری داشته باشند. اگر شرط در حلقه while نادرست در نظر گرفته شود، فیلد else کار می کند. 

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

به مثال های زیر دقت کنید:

# Python program to demonstrate

# while-else loop

i = 0

while i < 4:

    i += 1

    print(i)

else:  # Executed because no break in for

    print("No Break\n")

i = 0

while i < 4:

    i += 1

    print(i)

    break

else:  # Not executed as there is a break

    print("No Break")

 

خروجی که از این مثال می توان دریافت کرد به صورت زیر می باشد:

1
2
3
4
No Break

1

به مثال دوم نگاهی بیندازید:

 

the use of else statement

with the while loop'''

counter = 0

while counter < 3:

    print("Darsman.com ")

    counter = counter + 1

else:

    print("Darsman.com")

خروجی این دستور هم بدون شک به صورت زیر خواهد بود:

Darsman.com

Darsman.com

Darsman.com

Darsman.com

در این مثال ها، سه بار از یک متغیر شمارنده برای چاپ کردن عبارت Darsman.com استفاده می شود. در تکرار خط چهارم، شرط in while به عبارت False تبدیل شده و در نتیجه else اجرا خواهد شد.

 

تابع range

فرض کنید یک حلقه for ایجاد می کنید که در آن یک متغیر یک به یک افزایش می یابد. این شبیه کاری است که ما در حلقه while انجام دادیم.

حال می خواهیم مجموع اعداد 1 تا 9 را در یک چرخه حساب کنیم.

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

nums= [1, 2, 3, 4, 5, 6, 7, 8, 9]

result = 0

for n in nums:

    result += n

 

print(result)

اما راه حل ساده تری هم داریم!

تابع ()range  لیستی از اعداد صحیح ایجاد می کند. این تابع را می توان مستقیماً برای تولید محدوده ای از اعداد (محدوده عددی) در پایتون برای حلقه استفاده کرد.

کد زیر با کد بالا یکسان است و عدد 45 را به ما می دهد.

result = 0

for i in range(10):

    result += i

 

print(i)

تابع محدوده (n) range  لیستی از اعداد از 0 تا n-1 را به ما می دهد.

از این ویژگی می توان در سطح حرفه ای تری نیز استفاده کرد. ساختار کلی آن به شرح زیر است.

range(start, stop, step)

سه آرگومان ورودی که در این این تابع استفاده شده عبارت‌اند از:

    start: نقطه شروع شمارش

    stop: نقطه پایانی (این نقطه جزء توالی عددی نیست)

    step: گام حرکت از شروع تا پایان ( آرگومان اختیاری، عدد 1 پیش‌فرض)

 

اگر فقط یک ورودی برای فیلد ()range وارد شود، مقدار اولیه 0 و مقدار گام 1 خواهد بود.

مثال زیر را برای این ویژگی در نظر بگیرید:

 

range(9)

# [0, 1, 2, 3, 4, 5, 6, 7, 8]

 

range(5, 21)

# [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

 

range(5, 21, 3)

# [5, 8, 11, 14, 17, 20]

 

ترفندهای کار با حلقه

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

در ادامه دو دستور continue و break در حلقه‌ ها و ساختار Nested Loops را با هم به طور کامل بررسی می ‌کنیم.

 

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

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

وقتی به عدد مورد نظر برسیم چه اتفاقی می افتد؟! در این زمان بهتر است باید به طور کامل از حلقه (for یا while) بیرون بیاییم!

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

با رسیدن به دستور مکث ( brea) ، تکرارها بلافاصله حذف و تکرارهای بعدی نادیده گرفته می شوند. چه در اولین تکرار باشیم چه آخرین! این اغلب با کمک ویژگی های حالت پایتون انجام می شود.

 

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

for i in lst:

    if i == 5:

        break

    print(i)

 

# Result:

# 1

# 2

# 3

# 4

 

خروجی های این قطعه کد فقط اعداد 1 تا 4 هستند.

 

استفاده از دستور continue

در مثال قبل، اگر نخواهیم عدد خاصی را چاپ کنیم، چطور؟

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

راه حل دیگر پیش روی هر برنامه نویس استفاده از دستور continue است. با اجرای continue در حلقه تمام کدهای بدنه حلقه را اجرا نمی کند و مستقیماً به شروع تکرار بعدی در حلقه می رویم.

به قطعه کد زیر توجه کنید:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

for i in lst:

    if i == 5:

        continue

    print(i)

خروجی اجرای این کد به شکل زیر خواهد بود:

همانطور که ملاحظه می کنید به جز شماره 5، سایر شماره های لیست در خروجی چاپ می شوند.

 

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

از حلقه های پایتون نیز می توان به صورت تودرتو استفاده کرد. به عنوان مثال، برای پیدا کردن یک ماتریس، می توانید به صورت زیر عمل کنید. توجه داشته باشید که محدوده کاراکترهای حلقه در پایتون با همان ورودی (یا indentation) تعریف می شود.

mtrx = [[2, 3, 4], [5, 6, 7], [8, 9, 10]]

x = 0

for i in mtrx:

    for j in i:

        x += j

 

print(x) #45

 

مرور آموزش حلقه ها در پایتون

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

هر زمان که یک حلقه for را در پایتون اجرا می کنیم، متغیری که تعریف کردیم یک مقدار جدید می گیرد و کد اصلی بر اساس آن مقدار اجرا می شود. شما نمی توانید از این متغیر در بدنه استفاده کنید! یک حلقه while در پایتون تا زمانی اجرا می شود که یک شرط برقرار باشد.

علاوه بر حلقه‌ها، یک تابع دسترسی (range) برای ایجاد لیستی از اعداد، یک دستور break برای توقف حلقه و یک دستور برای رفتن به حلقه بعدی لازم است.

 

سخن آخر

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

1 0 نظر

سبد خرید

سبد خرید شما خالی است.