حلقه While در پایتون
فهرست عناوین
حلقه While در پایتون یکی از ابزارهای پایهای و قدرتمند برای اجرای کدها به صورت تکراری است. با استفاده از حلقه While میتوانیم تا زمانی که یک شرط برقرار است، تکرارهایی را انجام دهیم.
1. مفهوم پایه حلقه while
حلقه While در پایتون یک شرط را بررسی میکند و تا زمانی که آن شرط True
باشد، بلوک کد درون حلقه اجرا میشود. زمانی که شرط False
شود، اجرای حلقه متوقف میشود.
while condition:
# کدهایی که باید تکرار شوند
مثال:
فرض کنید میخواهیم عددی را تا زمانی که کمتر از 5 است، چاپ کنیم:
number = 0
while number < 5:
print("Number is:", number)
number += 1
نتیجه:
Number is: 0
Number is: 1
Number is: 2
Number is: 3
Number is: 4
در این مثال، تا زمانی که مقدار number کمتر از 5 است، حلقه ادامه دارد و پس از هر بار تکرار، مقدار عدد افزایش مییابد.
2. شرطها در حلقه While در پایتون
شرط حلقه while میتواند هر نوع عبارت منطقی باشد. شرطهای ساده میتوانند بررسی کنند که آیا مقدار متغیرها از مقداری خاص کمتر یا بیشتر است.
مثال: حلقه با شرط پیچیدهتر
حالا تصور کنید میخواهیم از حلقه استفاده کنیم تا زمانی که عدد کمتر از 10 باشد ولی فقط اعداد زوج را چاپ کنیم:
number = 0
while number < 10:
if number % 2 == 0:
print("Even number:", number)
number += 1
نتیجه:
Even number: 0
Even number: 2
Even number: 4
Even number: 6
Even number: 8
3. حلقههای بینهایت
اگر شرط حلقه while همیشه درست باشد، حلقه تا بینهایت ادامه پیدا میکند. این نوع حلقهها میتوانند خطرناک باشند اگر به درستی کنترل نشوند.
مثال: حلقه بینهایت
در این مثال، شرط همیشه درست است و حلقه هرگز متوقف نمیشود:
while True:
print("This is an infinite loop!")
برای خروج از این حلقه باید از کلیدهای ترکیبی مانند Ctrl + C استفاده کنید.
4. استفاده از break برای خروج از حلقه While در پایتون
برای جلوگیری از اجرای بینهایت یک حلقه، میتوانید از دستور break استفاده کنید تا حلقه در صورت بروز شرایط خاصی متوقف شود.
مثال: خروج از حلقه با break
فرض کنید میخواهیم اعداد را چاپ کنیم ولی اگر به عدد 3 رسیدیم، حلقه متوقف شود:
number = 0
while number < 10:
if number == 3:
break
print("Number is:", number)
number += 1
نتیجه:
Number is: 0
Number is: 1
Number is: 2
در این مثال، وقتی عدد به 3 میرسد، دستور break اجرا میشود و حلقه متوقف میشود.
5. استفاده از continue برای رد کردن یک تکرار
اگر بخواهید یک تکرار خاص را نادیده بگیرید و به تکرار بعدی بروید، میتوانید از دستور continue استفاده کنید.
مثال: استفاده از continue
فرض کنید میخواهیم تمام اعداد را چاپ کنیم، اما وقتی عدد 3 باشد، آن را نادیده بگیریم:
number = 0
while number < 5:
number += 1
if number == 3:
continue
print("Number is:", number)
نتیجه:
Number is: 1
Number is: 2
Number is: 4
Number is: 5
6. حلقههای تو در تو (Nested Loops)
در پایتون میتوان از حلقههای تو در تو استفاده کرد. یعنی یک حلقه while میتواند شامل یک حلقه دیگر باشد.
مثال: حلقه تو در تو برای چاپ یک الگو
میخواهیم یک مربع 3x3 از اعداد چاپ کنیم:
i = 0
while i < 3:
j = 0
while j < 3:
print(f"({i},{j})", end=" ")
j += 1
print() # برای چاپ در خط جدید
i += 1
نتیجه:
(0,0) (0,1) (0,2)
(1,0) (1,1) (1,2)
(2,0) (2,1) (2,2)
7. استفاده از else با حلقه while
در پایتون میتوانید از دستور else همراه با حلقه while استفاده کنید. دستور else زمانی اجرا میشود که حلقه به صورت طبیعی (بدون استفاده از break) خاتمه یابد.
مثال: استفاده از else در حلقه while
در این مثال، وقتی حلقه تمام شد، پیام "Loop finished!" چاپ میشود:
number = 0
while number < 5:
print("Number is:", number)
number += 1
else:
print("Loop finished!")
نتیجه:
Number is: 0
Number is: 1
Number is: 2
Number is: 3
Number is: 4
Loop finished!
8. اهمیت دقت در بهروز رسانی شرطها
بهروزرسانی شرطها در حلقه while بسیار مهم است، در غیر این صورت، ممکن است به حلقههای بیپایان برخورد کنید.
مثال: حلقهای که هرگز متوقف نمیشود
در این مثال، حلقه هرگز متوقف نمیشود چون مقدار `number` به درستی بهروزرسانی نمیشود:
number = 0
while number < 5:
print("Number is:", number)
# هیچ افزایشی در مقدار number وجود ندارد
این کد در یک حلقه بیپایان گیر خواهد کرد.
حلقه While در پایتون یک ابزار بسیار قدرتمند است که به شما اجازه میدهد تا زمانی که یک شرط برقرار است، یک بلوک کد را تکرار کنید. درک درست از حلقههای بینهایت، دستور break، دستور continue و استفاده صحیح از شرطها به شما کمک میکند تا کدهای موثرتری بنویسید.
تمرین
در ادامه، 20 تمرین خلاقانه و ساده برای یادگیری و تمرین حلقه while در پایتون ارائه شده است. این تمرینها کمک میکنند تا مفاهیم مختلفی مانند حلقههای بینهایت، شرطهای پیچیده، استفاده از break و continue و حلقههای تو در تو را بهتر درک کنید.
1. شمردن اعداد تا ۱۰
با استفاده از حلقه while، اعداد 1 تا 10 را چاپ کنید.
2. چاپ اعداد زوج تا ۲۰
از حلقه while برای چاپ اعداد زوج بین 0 تا 20 استفاده کنید.
3. جمع اعداد تا رسیدن به ۱۰۰
یک برنامه بنویسید که از کاربر عددی بگیرد و آن را به مجموع اضافه کند. این کار تا زمانی انجام شود که مجموع به 100 برسد.
4. سوال پرسیدن تا دریافت جواب درست
یک حلقه while ایجاد کنید که از کاربر سوال "نام شما چیست؟" بپرسد تا زمانی که پاسخ "علی" باشد.
5. چاپ کلمات وارونه
یک کلمه از کاربر بگیرید و با استفاده از حلقه while، آن را برعکس چاپ کنید.
6. سری فیبوناچی تا عددی مشخص
از حلقه while برای تولید و چاپ اعداد سری فیبوناچی تا زمانی که عدد از 50 بیشتر نشود، استفاده کنید.
7. محاسبه فاکتوریل
یک عدد از کاربر بگیرید و فاکتوریل آن را با استفاده از حلقه while محاسبه کنید.
8. حدس زدن عدد
عددی را به صورت تصادفی انتخاب کنید و از کاربر بخواهید تا آن عدد را حدس بزند. برنامه تا زمانی ادامه یابد که کاربر عدد درست را حدس بزند.
9. چاپ مربع اعداد
با استفاده از حلقه while، مربع اعداد بین 1 تا 10 را چاپ کنید.
10. چاپ جدول ضرب برای عددی خاص
یک عدد از کاربر بگیرید و جدول ضرب آن را تا 10 با استفاده از حلقه while چاپ کنید.
11. تولید یک مثلث از اعداد
با استفاده از حلقه while، یک مثلث از اعداد تولید کنید، به طوری که در هر خط یک عدد بیشتر از خط قبل باشد.
12. محاسبه تعداد ارقام یک عدد
از کاربر یک عدد بگیرید و تعداد ارقام آن را با استفاده از حلقه while محاسبه کنید.
13. تشخیص عدد اول
از کاربر یک عدد بگیرید و با استفاده از حلقه while بررسی کنید که آیا عدد اول است یا خیر.
14. جمع اعداد فرد تا عددی مشخص
با استفاده از حلقه while، مجموع تمام اعداد فرد بین 1 تا عددی مشخص را محاسبه کنید.
15. الگوی ستارهای
با استفاده از حلقه while، یک الگوی ستارهای به صورت زیر چاپ کنید:
*
**
***
****
*****
16. اعداد کسری
از حلقه while برای چاپ اعداد کسری به صورت 0.1، 0.2، 0.3 تا 1 استفاده کنید.
17. جمع ارقام یک عدد
از کاربر یک عدد بگیرید و مجموع ارقام آن را با استفاده از حلقه while محاسبه کنید.
18. معکوس کردن یک عدد
یک عدد از کاربر بگیرید و با استفاده از حلقه while آن را معکوس کنید.
19. محاسبه میانگین اعداد
از کاربر بخواهید تا اعدادی وارد کند. برنامه تا زمانی ادامه یابد که کاربر "0" وارد کند. سپس میانگین اعداد وارد شده را محاسبه و چاپ کنید.
20. چاپ حروف یک کلمه به صورت مجزا
یک کلمه از کاربر بگیرید و با استفاده از حلقه while، هر حرف آن را در یک خط جدید چاپ کنید.