آیا تا به حال با مسئلهای روبهرو شدهاید که ندانید یک عملیات چند بار باید تکرار شود؟ فرض کنید قرار است تا زمانی که کاربر یک رمز عبور صحیح وارد نکرده، از او دوباره ورودی بگیرید یا تا وقتی یک شرط برقرار است، برنامه به اجرای خود ادامه دهد. استفاده از حلقه while در python بهترین انتخاب است؛ زیرا برخلاف حلقه for، تعداد تکرارها از قبل مشخص نیست. این مبحث، بخشی از اصول پایهای در مسیر آموزش برنامه نویسی محسوب میشود که تسلط بر آن، درک شما را از منطقِ کدهای تعاملی بسیار عمیقتر میکند.
در آموزش حلقه while در پایتون یاد میگیرید این دستور دقیقا چگونه کار میکند، در چه شرایطی باید از آن استفاده کنید، چه تفاوتی با حلقه for دارد و چگونه از ایجاد حلقههای بینهایت جلوگیری کنید. همچنین با بررسی چندین مثال، تمرینهای کاربردی و نکات مهم در آموزش پایتون، میتوانید این مفهوم را بهصورت عملی یاد بگیرید و در پروژههای واقعی از آن استفاده کنید.
حلقه while در پایتون چیست؟ آشنایی با منطق اجرای “تا زمانی که شرط برقرار است“
حلقه while در پایتون یکی از سادهترین و کاربردیترین ابزارها برای تکرار دستورات است. هر زمان بخواهید یک بخش از برنامه تا برقراربودن یک شرط بارها اجرا شود، از این حلقه استفاده میکنید. پایتون قبل از هر بار اجرای حلقه، شرط را بررسی میکند. اگر نتیجه شرط Trueباشد، دستورات داخل حلقه اجرا میشوند و این روند ادامه پیدا میکند. به محض اینکه شرط Falseشود، حلقه پایان مییابد و برنامه به سراغ دستورات بعدی میرود.
while بیشتر در موقعیتهایی کاربرد دارد که تعداد دفعات تکرار از قبل مشخص نیست. برای مثال، زمانی که برنامه منتظر واردکردن یک رمز عبور صحیح است، باید از کاربر چندین بار ورودی بگیرد یا تا زمانی که یک شرط خاص برقرار است، به اجرای خود ادامه دهد. به همین دلیل، یادگیری منطق اجرای حلقه وایل یکی از مهارتهای مهم برای نوشتن برنامههای کاربردی و تعاملی است.
تفاوت حلقه while و for در پایتون؛ چه زمانی از هرکدام استفاده کنیم؟
یکی از رایجترین پرسشها هنگام یادگیری پایتون این است که چه زمانی از حلقه for استفاده کنیم و چه زمانی while انتخاب بهتری است؟ هر دو حلقه برای تکرار دستورات بهکار میروند؛ اما هدف و کاربرد آنها با یکدیگر تفاوت دارد. انتخاب درست بین این دو، کد شما را خواناتر، سادهتر و حرفهایتر میکند.
- استفاده از حلقه for
حلقه for زمانی کاربرد دارد که تعداد دفعات تکرار یا مجموعه دادههایی که قرار است پردازش شوند، از ابتدا مشخص باشد. این حلقه روی عناصر یک لیست، رشته، تاپل، دیکشنری یا هر شی قابل پیمایش حرکت میکند و هر عنصر را بهترتیب در اختیار برنامه قرار میدهد. به همین دلیل، زمانی که قصد دارید همه اعضای یک مجموعه را بررسی کنید یا عملیاتی را به تعداد مشخصی بار انجام دهید، استفاده از for کد را خواناتر، سادهتر و منظمتر میکند.
- استفاده از while
حلقه while برای شرایطی طراحی شده است که تعداد تکرارها از قبل مشخص نیست و ادامه اجرای برنامه به نتیجه یک شرط بستگی دارد. در ابتدای هر تکرار، شرط بررسی میشود و تا زمانی که مقدار آن True باشد، دستورات داخل حلقه اجرا خواهند شد. این ویژگی باعث میشود دستور while در نرمافزار پایتون انتخاب مناسبی برای سناریوهایی مانند دریافت ورودی از کاربر، اعتبارسنجی اطلاعات، اجرای یک منو تا زمان انتخاب گزینه خروج یا انتظار برای وقوع یک رویداد باشد؛ یعنی موقعیتهایی که پایان حلقه با تغییر یک شرط مشخص میشود، نه با تعداد دفعات تکرار.
سینتکس دستور while در پایتون؛ ساختار نوشتن حلقه و اهمیت Indentation
قبل از اینکه وارد ساختار نوشتن حلقه شوید، بهتر است بدانید حلقه وایل در python زمانی استفاده میشود که بخواهید یک کار را تا برقراربودن یک شرط ادامه دهید. حالا برای نوشتن آن کافیست شکل کلی و قواعد ساده آن را بشناسید:
- نحوه نگارش
یادگیری حلقه وایل از همان ابتدا با شناخت ساختار نوشتن آن آغاز میشود. کافیست کلمه کلیدی while را بنویسید، سپس شرط مورد نظر را مشخص کنید و در انتهای آن از علامت “:” استفاده کنید. از این لحظه، پایتون پیش از هر بار اجرای حلقه، شرط را بررسی میکند. تا زمانی که نتیجه شرط True باشد، دستورات داخل حلقه اجرا میشوند و با تغییر مقدار شرط به False، اجرای حلقه پایان مییابد.
ساختار کلی دستور while به شکل زیر است:
# دستورات حلقهwhile condition:
- اهمیت Indentation (تورفتگی)
اگر بخواهیم تنها یک نکته را بهعنوان مهمترین قانون نگارش کدهای پایتون معرفی کنیم، آن Indentation یا تورفتگی است. برخلاف بسیاری از زبانهای برنامهنویسی که از آکولاد (“{}”) برای مشخصکردن محدوده کد استفاده میکنند، پایتون با فاصلهگذاری ابتدای هر خط تشخیص میدهد که کدام دستورات به بدنه حلقه تعلق دارند.
به مثال زیر دقت کنید:
count = 1
while count <= 3:
print(count)
count += 1
print (“پایان حلقه”)
در این مثال، دو خط print(count) و count += 1 با تورفتگی نوشته شدهاند؛ بنابراین در هر بار اجرای حلقه تکرار میشوند. دستور print (“پایان حلقه”) همسطح با while قرار دارد، در نتیجه پس از پایان حلقه اجرا خواهد شد.
رعایت صحیح تورفتگی، علاوهبر اینکه ساختار برنامه را برای مفسر پایتون مشخص میکند، خوانایی کد را نیز چند برابر افزایش میدهد. به همین دلیل، هنگام استفاده از حلقه وایل پایتون، همیشه ابتدا به شرط حلقه و سپس به تورفتگی خطوط داخل آن توجه کنید؛ همین دو اصل، پایه اجرای صحیح حلقههای while هستند.
مثال حلقه while در پایتون؛ حل مسائل واقعی با کدهای عملی
بهترین راه برای یادگیری حلقه وایل در python، استفاده از آن در پروژههای واقعی است. زمانی که این حلقه را در سناریوهای کاربردی بهکار بگیرید، بهخوبی متوجه میشوید چرا while یکی از مهمترین ابزارهای کنترل جریان در پایتون است. در ادامه، چند تمرین while در پایتون را بررسی میکنیم که هر کدام یکی از کاربردهای رایج این دستور را نشان میدهند.
تمرین ۱: اعتبارسنجی هوشمند ورودی
فرض کنید برنامه از کاربر میخواهد عددی بین ۱ تا ۱۰ وارد کند. اگر عدد خارج از این بازه باشد، سوال دوباره نمایش داده میشود و این روند تا زمان دریافت یک مقدار معتبر ادامه پیدا میکند. این یکی از رایجترین کاربردهای دستور while در python است.
(“عددی بین ۱ تا ۱۰ وارد کنید: “))number = int(input
while number < 1 or number > 10:
((ورودی نامعتبر است. دوباره وارد کنید: number = int(input(“
(“ورودی معتبر دریافت شد.”) print
در این مثال، حلقه تا زمانی اجرا میشود که مقدار واردشده خارج از بازه مجاز باشد. به محض واردکردن یک عدد معتبر، شرط تغییر میکند و برنامه از حلقه خارج میشود.
تمرین ۲: معکوس کردن رشته
یکیدیگر از مثال های حلقه while در پایتون، برعکسکردن یک متن است. در این روش، از آخرین کاراکتر رشته شروع میکنید و تا ابتدای آن پیش میروید.
(” :یک متن وارد کنید “) text = input
index = len(text) – 1
reverse_text = “”
while index >= 0:
reverse_text += text[index]
index -= 1
print(reverse_text)
در این برنامه، متغیر index از آخرین حرف رشته آغاز میشود و در هر تکرار یک واحد کاهش پیدا میکند تا تمام کاراکترها بهترتیب معکوس در خروجی قرار بگیرند.
تمرین ۳: ماشینحساب تجمعی
در این تمرین، برنامه تا زمانی که کاربر عدد صفر را وارد کند، اعداد را دریافت کرده و مجموع آنها را محاسبه میکند.
total = 0
(عدد وارد کنید (۰ برای پایان): “)) number = int(input
while number != 0:
total += number
(“عدد بعدی را وارد کنید: “) number = int(input
Total):”, مجموع اعدادprint(“
در این مثال، صفر نقش شرط پایان را دارد. تا قبل از واردشدن صفر، برنامه به دریافت اعداد و محاسبه مجموع آنها ادامه میدهد.
تمرین ۴: پروژه کوچک شبیهساز سیستم ورود (Login)
یکی از کاربردهای جذاب حلقه while پایتون، پیادهسازی سیستم ورود کاربران است. در این پروژه، کاربر سه فرصت برای واردکردن رمز عبور صحیح دارد. در صورت واردکردن رمز درست، دسترسی صادر میشود و در غیر این صورت، پس از پایان فرصتها حساب کاربری قفل خواهد شد.
password = “python123”
attempts = 3
while attempts > 0:
): ” رمز عبور را وارد کنید user_password = input(“
if user_password == password:
). “ورود موفق بود print(“
break
attempts -= 1
(رمز اشتباه است. attempts , ” : تعداد فرصت باقیمانده”)print
if attempts == 0:
. “) دسترسی مسدود شد print(“
این پروژه نشان میدهد که while در python تنها برای تکرار اعداد استفاده نمیشود؛ بلکه در بسیاری از برنامههای واقعی مانند سیستمهای ورود، اعتبارسنجی اطلاعات، فرمهای ثبتنام و منوهای تعاملی نیز نقش مهمی دارد. با تمرین این مثالها، درک عمیقتری از نحوه عملکرد حلقه وایل پیدا میکنید و آمادگی بیشتری برای استفاده از آن در پروژههای واقعی خواهید داشت.

مثالهای کاربردی حلقه while در پایتون برای دریافت ورودی از کاربر
یکی از مهمترین کاربردهای حلقه وایل در نرمافزار پایتون، مدیریت ورودیهای کاربر است. در بسیاری از برنامههای واقعی، لازم است تا زمانی که اطلاعات صحیح دریافت نشدهاند، برنامه از کاربر دوباره درخواست ورودی کند. این کار باعث میشود دادههای معتبر وارد برنامه شوند و تجربه کاربری بهتری ایجاد شود. در ادامه، چند مثال حلقه وایل در python را بررسی میکنیم که در پروژههای واقعی بسیار پرکاربرد هستند.
- دریافت نام کاربر
فرض کنید میخواهید پس از دریافت نام کاربر، پیام خوشآمدگویی نمایش دهید. اگر کاربر فیلد را خالی بگذارد، برنامه دوباره درخواست واردکردن نام را نمایش میدهد.
(“: نام خود را وارد کنید “) name = input
while name.strip() == “”:
(“:نام نمیتواند خالی باشد. دوباره وارد کنید”)name = input
(“.خوش آمدید ، {name} .سلام print(f”
در این مثال، متد strip یا () فاصلههای ابتدا و انتهای متن را حذف میکند؛ بنابراین اگر کاربر فقط فاصله وارد کند، برنامه همچنان آن را ورودی نامعتبر در نظر میگیرد.
- کنترل سن کاربر
گاهی لازم است قبل از ادامه اجرای برنامه، از معتبربودن اطلاعات واردشده مطمئن شوید. در مثال زیر، برنامه تا زمانی که کاربر یک سن معتبر وارد کند، دریافت ورودی را ادامه میدهد.
(سن خود را وارد کنید: “))age = int(input
while age < 0:
(سن باید صفر یا بیشتر باشد. دوباره وارد کنید: “))age = int(input
(سن ثبت شد.”)print
در این نمونه، دستور while پایتون از واردشدن مقادیر نامعتبر جلوگیری میکند و تنها زمانی اجازه ادامه اجرای برنامه را میدهد که مقدار سن منطقی باشد.
۳. خروج از برنامه با کلید q
یکی دیگر از کاربردهای حلقه وایل در پایتون، ساخت منوهای تعاملی است. در این مثال، برنامه تا زمانی اجرا میشود که کاربر کلید q را برای خروج وارد کند.
command = “”
while command != “q”:
(“دستوری وارد کنید (برای خروج q را وارد کنید): “)command = input
(“دستور دریافت شد.”)print
(“برنامه پایان یافت.”)print
این الگو در طراحی منوهای کنسولی، بازیهای متنی و ابزارهای خط فرمان بسیار رایج است. برنامه پس از دریافت q از حلقه خارج میشود و اجرای دستورات بعدی را ادامه میدهد.
این مثالها نشان میدهند که while تنها یک حلقه تکرار ساده در پایتون نیست؛ بلکه ابزار قدرتمندی برای کنترل ورودی کاربر، اعتبارسنجی اطلاعات و مدیریت جریان اجرای برنامه در شرایط مختلف است.
خطاهای رایج در استفاده از حلقه while در پایتون و روش رفع آنها
در زمان کار با حلقه وایل، برخی خطاهای ساده؛ اما بسیار مهم ممکن است باعث ایجاد رفتارهای غیر منتظره در برنامه شوند. شناخت این خطاها کمک میکند کد تمیزتر، قابل پیشبینیتر و حرفهایتری بنویسید. در ادامه، رایجترین اشتباهات در دستور while را همراه با روش اصلاح آنها بررسی میکنیم.
- فراموشکردن بهروزرسانی متغیر شرط
یکی از رایجترین اشتباهات این است که مقدار متغیری که شرط حلقه به آن وابسته است، در طول اجرای حلقه تغییر نکند. در این حالت، حلقه همچنان مقدار شرط را True نگه میدارد و اجرای برنامه متوقف نمیشود.
count = 1
while count <= 5:
print(count)
در این مثال، چون مقدار count افزایش پیدا نمیکند، حلقه هیچگاه پایان نمییابد. برای رفع مشکل باید در هر تکرار، متغیر شرط را بهروزرسانی کنید:
count = 1
while count <= 5:
print(count)
count += 1
- ایجاد حلقه بینهایت
یکی دیگر از خطاهای مهم در while، ایجاد حلقه بینهایت است. این اتفاق زمانی رخ میدهد که شرط همیشه مقدار True داشته باشد یا خروجی برای توقف حلقه تعریف نشده باشد.
while True:
(“در حال اجرا…”)print
این نوع حلقه گاهی بهصورت عمدی استفاده میشود؛ اما اگر کنترل خروج نداشته باشد، برنامه متوقف نمیشود. برای حل این مشکل باید یک شرط خروج یا دستور break در نظر بگیرید:
while True:
(“برای خروج q را وارد کنید: “)text = input
if text == “q”:
break
- مشکل در تورفتگی (Indentation)
در پایتون، تورفتگی نقش تعیینکنندهای دارد. اشتباه در فاصلهگذاری باعث میشود بخشی از کد خارج از حلقه اجرا شود یا خطای سینتکس رخ دهد.
count = 1
while count <= 3:
print(count)
count += 1
در این مثال، نبود تورفتگی صحیح برای print باعث خطا میشود؛ بنابراین تمام دستورات داخل حلقه باید همسطح و با تورفتگی یکسان نوشته شوند:
count = 1
while count <= 3:
print(count)
count += 1
نکات طلایی و کاربردی در حلقه while پایتون
درک عمیق حلقه وایل در پایتون فقط به یادگیری سینتکس محدود نمیشود؛ بلکه دانستن نکات کاربردی آن باعث میشود کدهای حرفهایتر، امنتر و قابل کنترلتری بنویسید. در ادامه چند نکته مهم و واقعی را بررسی میکنیم که در پروژههای عملی بسیار بهکار میآیند.
- اعداد و منطق در پایتون
در منطق برنامهنویسی پایتون، همه چیز به True و False تبدیل میشود. نکته مهم این است که پایتون هر عدد غیر صفر را به عنوان True در نظر میگیرد و مقدار ۰ و None را معادل False میشناسد. این رفتار در طراحی شرطهای دستور while بسیار مهم است؛ چرا که میتواند مسیر اجرای حلقه را بهطور مستقیم تحت تاثیر قرار دهد.
- خروج اضطراری با break
گاهی لازم است پیش از آنکه شرط اصلی حلقه تغییر کند، اجرای آن را متوقف کنید. در چنین شرایطی از دستور break استفاده میشود. این قابلیت در طراحی منوها، سیستمهای تعاملی و حتی مثالهای حلقه وایل بسیار کاربردی است؛ چرا که کنترل کامل خروج از حلقه را در اختیار برنامهنویس قرار میدهد.
- پرش از مرحله با continue
گاهی نیاز دارید فقط یک تکرار خاص را نادیده بگیرید و ادامه اجرای حلقه را به مرحله بعدی منتقل کنید. دستور continue دقیقا برای همین هدف استفاده میشود. با استفاده از این دستور در حلقه while پایتون میتوان شرایط خاص را فیلتر کرد و از اجرای بخشهایی از کد در همان تکرار جلوگیری نمود، بدون اینکه کل حلقه متوقف شود.
- تله حلقه بینهایت
یکی از مهمترین نکات در کار با حلقه وایل در پایتون، توجه به تغییر متغیر شرط است. اگر متغیری که در شرط استفاده شده است در طول حلقه بهروزرسانی نشود، برنامه وارد یک حلقه بینهایت میشود و اجرای آن ادامه پیدا میکند. برای جلوگیری از این مشکل، همیشه باید بررسی کنید که در هر تکرار، شرط حلقه بهصورت منطقی تغییر کند تا مسیر خروج از حلقه مشخص باشد.
سوالات متداول درباره آموزش حلقه while در پایتون
آیا پایتون حلقه do-while دارد؟
خیر، در پایتون ساختار مستقلی به نام do-while وجود ندارد. بااینحال میتوان رفتار مشابه آن را با استفاده از حلقه while True و دستور break در پایان یا میانه بدنه شبیهسازی کرد. در این روش، ابتدا یک بار اجرای کد انجام میشود و سپس شرط خروج بررسی میگردد.
چرا حلقه وایل من تا ابد اجرا میشود؟
این مشکل معمولا زمانی رخ میدهد که متغیری که در شرط حلقه استفاده شده است، در طول اجرای برنامه تغییر نکند. در چنین حالتی شرط همیشه مقدار True باقی میماند و حلقه متوقف نمیشود. این وضعیت با عنوان حلقه بینهایت (Infinite Loop) شناخته میشود.
کاربرد دستور else در while چیست؟
در while، بلوک else زمانی اجرا میشود که حلقه بهصورت طبیعی و با False شدن شرط به پایان برسد. اگر حلقه با دستور break متوقف شود، بخش else اجرا نخواهد شد. این قابلیت برای تشخیص پایان طبیعی حلقه بسیار کاربردی است.
تفاوت break و continue در while چیست؟
دستور break اجرای کل حلقه را متوقفکرده و برنامه را از حلقه خارج میکند. در مقابل، continue فقط همان تکرار جاری را نادیده میگیرد و اجرای حلقه را از بررسی شرط برای دور بعدی ادامه میدهد. این دو دستور ابزارهای مهمی برای کنترل جریان در دستور وایل در پایتون هستند.

شروع تسلط شما بر حلقههای پایتون
while در python یکی از انعطافپذیرترین ابزارهای کنترل جریان در برنامهنویسی است که به شما اجازه میدهد تا زمانی که یک شرط برقرار است، منطق برنامه را دقیق و هدفمند پیش ببرید. از دریافت ورودی کاربر گرفته تا ساخت منوهای تعاملی و مدیریت فرآیندهای پویا، همه و همه با تسلط بر این حلقه ساده و قدرتمند قابل پیادهسازی هستند. حالا نوبت شماست، یک پروژه کوچک طراحی کنید، یک مسئله واقعی انتخاب و از while برای حل آن استفاده کنید. اگر این مسیر را ادامه دهید، خیلی زود نوشتن حلقههای پیچیده بر