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

۸۴۷۴ بازدید
آخرین به‌روزرسانی: ۲۷ اردیبهشت ۱۴۰۲
زمان مطالعه: ۲ دقیقه
حلقه while در پایتون — به زبان ساده

پیش از این، در مطلب «حلقه for در پایتون — به زبان ساده»، به بحث دستورات کنترلی و حلقه for پرداخته شد. حلقه while در پایتون، یکی دیگر از انواع دستورات کنترلی است که آشنایی با آن و درک تفاوت این نوع حلقه با حلقه for بسیار حائز اهمیت است.  همانطور که در مطلب حلقه for نیز بیان شد، «حلقه‌ها» (Loops) در برنامه‌نویسی برای تکرار کردن یک بلوک خاص از کد مورد استفاده قرار می‌گیرند. در این مطلب، روش ساخت حلقه while در پایتون آموزش داده خواهد شد.

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

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

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

1while test_expression:
2    Body of while

در حلقه while، عبارت تست (شرط) ابتدا چک می‌شود. بدنه حلقه تنها در صورتی اجرا می‌شود که حاصل ارزیابی test_expression برابر با True باشد. پس از یک تکرار، عبارت تست مجددا بررسی می‌شود. فرایند تا جایی ادامه پیدا می‌کند که حاصل ارزیابی test_expression برابر با False باشد. در پایتون، بدنه حلقه while از طریق «دندانه‌گذاری» (Indentation) شناسایی می‌شود. بدنه با دندانه آغاز می‌شود و اولین خط بدون تورفتگی (دندانه)، نشان‌گر پایان حلقه است. پایتون هر مقدار غیر صفری را به عنوان True شناسایی می‌کند. None و صفر به عنوان False تفسیر می‌شوند.

فلوچارت حلقه while

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

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

در ادامه، مثالی از حلقه while در پایتون ارائه شده است.

1# Program to add natural
2# numbers upto 
3# sum = 1+2+3+...+n
4
5# To take input from the user,
6# n = int(input("Enter n: "))
7
8n = 10
9
10# initialize sum and counter
11sum = 0
12i = 1
13
14while i <= n:
15    sum = sum + i
16    i = i+1    # update counter
17
18# print the sum
19print("The sum is", sum)

خروجی حاصل از اجرای برنامه بالا، به صورت زیر خواهد بود.

Enter n: 10
The sum is 55

در برنامه بالا، عبارت تست تا هنگامی «درست» (True) خواهد بود که متغیر شمارنده (Counter Variable)، یعنی i، کوچکتر یا مساوی n باشد (۱۰ در برنامه بالا). در هر تکرار از حلقه، نیاز به افزایش متغیر شمارنده در بدنه حلقه است. این مسأله بسیار مهمی است که متاسفانه برخی از برنامه‌نویسان تازه‌کار آن را فراموش می‌کنند. انجام چنین کاری منجر به ایجاد حلقه‌های بی‌پایان یا حلقه‌های نامتناهی می‌شود. در نهایت، در حلقه‌ای که به درستی عمل کند و بی‌پایان نیز نباشد، نتایج در خروجی نمایش داده می‌شوند.

حلقه while با else

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

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

1# Example to illustrate
2# the use of else statement
3# with the while loop
4
5counter = 0
6
7while counter < 3:
8    print("Inside loop")
9    counter = counter + 1
10else:
11    print("Inside else")

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

1Inside loop
2Inside loop
3Inside loop
4Inside else

در اینجا، از یک متغیر شمارنده برای سه مرتبه چاپ کردن رشته Inside loop استفاده می‌شود. در چهارمین تکرار، شرط درون while غلط (False) خواهد بود. بنابراین، بخش else اجرا می‌شود.

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

^^

بر اساس رای ۵۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Programiz
۵ دیدگاه برای «حلقه while در پایتون — به زبان ساده»

سلام طبق فلوچارت while با False شدن شرط از حلقه خارج می شود آیا با True شدن مجدد به حلقه بر می گردد؟راهکار برای این چیه؟

واقعا عالی بود. ساده و قابل فهم

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

سلام آره به یه پیش نیاز، نیاز داره

مثالش خیلی سطح بالابود
یه جورباید بنویسید که من که کلاس نمیرم هم بتونم یاد بگیرم?

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *