حل مسئله با while در پایتون – به زبان ساده
برای حل مسئله با while در پایتون لازم است که ابتدا به شکل کامل با این حلقه، سینتکس و منطق آن آشنا شویم. سپس با استفاده از عبارتهای شرطی صحیح سعی کنیم تا بهترین حالت پیمایش دادهها و حل مسئله را پیدا کنیم. حلقه while یکی از ابزارهای تخصصی زبان برنامه نویسی پایتون برای پیمایش بر روی ساختارهای پیمایشپذیر و ساختمانهای داده است. حلقه for در پایتون به شمارنده مجهز است، اما حلقه while با کمک عبارتهای شرطی کار میکند. با این حلقه میتوان عملیات مختلف را به صورت تکراری و تا زمان رویدادن شرایط خاص اجرا کرد. در ضمن با کمک آن به راحتی میتوانیم حلقه بینهایت هم تعریف کنیم. در این مطلب از مجله فرادرس با حلقه while در پایتون آشنا شده و روش بهینه حل مسئله با آن را به کمک مثال سادهای بررسی میکنیم. سعی کردهایم در تمام بخشهای مطلب از مثالهای کوتاه و شفاف استفاده بکنیم. ابتدا سینتکس حلقه while را توضیح میدهیم. بعد از آن هم روش بهینهسازی مربوط به مسئله مطرح شده را بررسی میکنیم.
- در این مطلب با حلقه while در پایتون به شکل کامل و مفهومی آشنا میشوید.
- سینتکس حلقه while را بخش به بخش بررسی کرده و تمام قسمتهای آن را درک میکنید.
- روش صحیح تعریف شرط برای حلقه while و عبارتهای نوشته شده در این بخش را میآموزید.
- با کمک مثال سادهای روش حل مسئله با حلقه while در پایتون را یاد میگیرید.
- با الگوریتم پیدا کردن تعداد ارقام اعداد و فلوچارت آن آشنا میشوید.
- روش بهینهسازی راه حل پیدا کردن تعداد رقم هر عدد را به کمک حلقه while یاد میگیرید.


سینتکس while در پایتون
برای حل مسئله با while در پایتون لازم است که ابتدا با سینتکس درست برای نوشتن کدهای این مفهوم برنامه نویسی آشنا باشیم.
در کادر پایین، سینتکس این حلقه نوشته شده است.
این سینتکس از سه بخش اصلی تشکیل شده است. تمام این موارد را یک به یک در فهرست پایین توضیح دادهایم.
- عبارت while الزامی و ثابت است. این عبارت جزو کلمههای رزرو شده پایتون برای نوشتن کد است.
- عبارت condition نشاندهنده شرطی است که باید برای حلقه while مشخص کنیم. انواع حلقه در پایتون از روشهای مختلفی مانند شمارنده یا عبارت شرطی استفاده میکنند. حلقه while با عبارتهای شرطی کار میکند. در ادامه این مطلب را به شکل کامل توضیح دادهایم.
- عبارت statements هم نشاندهنده بدنه دستورات عبارت while هستند. در این بخش هم وجود کد الزامی است.

تا به اینجای مطلب با سینتکس حلقه while به شکل کامل آشنا شدهاید. در ادامه روش حل مسئله با این حلقه را نیز بررسی میکنیم. در صورت تمایل به مطالعه این دست از مطالب، پیشنهاد میکنیم که اپلیکیشن مجله فرادرس را به صورت نصب شده همراه خود داشته باشید.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
نکته: حتما به استفاده صحیح از دندانهگذاری در زمان نوشتن دستورات پایتون توجه کنید.
بعد از اجرای کدهای بالا در خروجی زیر در کنسول پایتون نمایش داده میشود.
1
2
3
4
5در کدهای بالا دستور print با هر گردش حلقه، مقدار موجود در عبارت count را چاپ میکند. اما در کدهای پایین، این تابع فقط تعداد گردش حلقه while را در خروجی نمایش میدهد.
بعد از اجرای کدهای بالا خروجی برابر با عدد 5 در کنسول پایتون نمایش داده میشود.
یادگیری پایتون با کمک پروژههای واقعی
به دلیل نزدیکی سینتکس پایتون به زبان انگلیسی، یادگیری آن نسبت به دیگر زبانها سادهتر است. بهترین روش برای تسلط بر مفاهیم اولیه و پیشرفته پایتون، استفاده از آنها در زمان کار با پروژههای واقعی است. زیرا در پروژههای مختلف ممکن است چندین بار و به صورت تکراری از مفاهیم اصلی پایتون استفاده کنیم. در ضمن در این پروژهها مفاهیم متنوع به صورت ترکیبی و در کنار هم به کار برده میشوند. اجرای پروژههای ساده با کمک حلقه for حتی بهتر از بررسی چند نمونه سوال حلقه for در پایتون به یادگیری این مفهوم کمک میکند.

در فرادرس، مجموعه آموزشی با نام «مجموعه آموزش پروژه محور برنامه نویسی پایتون» تولید شده است. در این مجموعه، روش پیادهسازی پروژههای واقعی و متنوع آموزش داده میشود. فیلمهای پروژهمحور فرادرس از موضوعات ساده تا پیشرفته را پوشش میدهند. در هر یک از این فیلمها، تکنولوژیها و کتابخانههای گوناگونی استفاده شدهاند. برخی از پروژهها با کمک برنامه نویسی شیءگرا پیادهسازی شده و برخی دیگر با API-های پایتون کار میکنند. با مرور این آموزشها میتوانید مهارتهای خود را به میزان چشمگیری افزایش دهید.
در پایین، چند فیلم آموزشی پروژهمحور زبان پایتون را معرفی کردهایم.
- فیلم آموزش مقدماتی ساخت ربات تلگرام با پایتون
- فیلم آموزش ساخت چت روم با «سوکت نویسی در پایتون» (Socket Programming در Python)
- فیلم آموزش ساخت داشبورد هوش تجاری با Streamlit همراه با پروژه عملی + گواهینامه
- فیلم آموزش پروژه محور پایتون، ایجاد QR Code و اسکن آن با ۴ کتابخانه Python
- فیلم آموزش پروژه محور پایتون درباره ساخت خزنده وب با فریم ورک Scrapy + گواهینامه
درک روش حل مسئله با while در پایتون
به منظور درک بهتر این حلقه باید روش کار آن را قدمبهقدم بررسی کنیم. ابتدا به کد زیر توجه کنید. هدف از این کد، شمردن تعداد ارقام عدد ۱۰۰ است. در واقع در مسئله پایین، الگوریتمی را برای محاسبه تعداد ارقام پیادهسازی کردهایم. این مفهوم در برنامه نویسی بسیار مهم است. برای کسب مهارت در حل این دست از مسائل و موارد پیشرفته شبیه به آن، پیشنهاد میکنیم که فیلم آموزش نکات برنامه نویسی پایتون و حل مسائل الگوریتمی را در فرادرس مشاهده کنید. به منظور کمک به مخاطبان مجله، لینک دسترسی به این فیلم را در پایین نیز قرار دادهایم.
توجه کنید که میتوان عدد مربوط به متغیر num را با کمک تابع input در پایتون از کاربر نیز دریافت کرد. اما در این مثال، هدف بررسی حلقه while است.
در تصویر پایین، فلوچارت روش کار این برنامه را رسم کردهایم.

برای درک روش حل مسئله با این کد ابتدا به عبارت شرطی حلقه while توجه کنید.
عبارت شرطی حلقه whlie
عبارت num!=0 به معنای آن است که آیا num نامساوی 0 است یا نه. اگر این عبارت صحیح باشد، یعنی معادل با «True» ارزیابی شود، مفسر پایتون به سراغ اجرای دستورات داخل بدنه حلقه میرود. در غیر این صورت از حلقه عبور کرده و دستور بعدی اجرا میشود. باید همیشه ساختار کدهای بدنه حلقه به شکلی نوشته شود که در نهایت امکان «False» شدن عبارت شرطی وجود داشته باشد. در غیر این صورت با حلقه بینهایت روبهرو میشویم.
البته در بعضی برنامهها بدنه اصلی برنامه باید به طور دائم اجرا شود. در چنین شرایطی میتوان از حلقه بینهایت استفاده کرد. در غیر این صورت باید به False شدن این شرط توجه بکنیم. در برنامه بالا دستور num//=10 در هر گردش حلقه، مقدار متغیر num را کاهش میدهد. این دستور معادل با دستور num = num //10 است. در نتیجه به هر حال مقدار متغیر num برابر با صفر خواهد شد.

دستورات بدنه حلقه while
بدنه این برنامه از دو دستور num//=10 و counter += 1 ساخته شده است.
- دستور num//=10 مسئول کم کردن رقم داده شده به برنامه در هر بار گردش حلقه است. این دستور، عدد مورد نظر را تقسیم بر ۱۰ میکند و قسمت صحیح تقسیم را در متغیر num قرار میدهد. برای درک بهتر روش کار انواع تقسیم میتوانید مطلب تقسیم در پایتون را در مجله فرادرس مطالعه بکنید.
- دستور counter += 1 هم هر بار شمارنده ارقام (تعداد گردش حلقه) را یک واحد افزایش میدهد.
بهینهسازی
بعد از به پایان رسیدن کار حلقه، عدد 3 در خروجی به عنوان تعداد ارقام num چاپ میشود. نکته اینجاست که این حلقه ۳ بار اجرا شده است. با داشتن درک درستی از حل مسئله با while در پایتون میتوانیم اجرای حلقه را هم بهینه کنیم. در این برنامه بخصوص اگر از همان اول کار، عبارت شرطی را num>=10 و مقدار متغیر counter را برابر با 1 قرار بدهیم با دو بار گردش حلقه به پاسخ میرسیم.
نکته اینجاست که هر عدد، حداقل از یک رقم تشکیل شده است. در نتیجه فقط کافیست که ارقام بیش از ۱ یعنی اعداد بزرگترمساوی ۱۰ را بررسی کنیم.
چطور با کمک فرادرس مفاهیم پایتون را بیاموزیم؟
فرادرس مجموعه آموزشی تخصصی برای کمک به یادگیری هرچه بهتر پایتون تولید کرده است. این مجموعه آموزشی از مفاهیم ابتدایی تا تخصصی و پیشرفته را پوشش میدهد. وبسایت فرادرس سالهاست که به تولید فیلمهای آموزشی در حوزههای مختلف میپردازد و به همین دلیل تخصص و تجربه بالایی در این زمینه دارد. پایتون هم یکی از همین زمینهها است. این زبان، ابزار مناسبی برای توسعه نرمافزارهای مدرن و پیچیده است. نزدیکی سینتکس آن به زبان انسان، مراحل یادگیری و کار با پایتون را سادهتر میکند. یادگیری پایتون با استفاده از فیلمهای آموزشی فرادرس، انتخاب مناسبی برای افراد علاقهمند به برنامه نویسی است.
در پایین، چند مورد از فیلمهای آموزشی پایتون را معرفی کردهایم. این فیلمها برای آموزش سطوح پیشرفته پایتون مفید هستند.
- فیلم آموزش برنامه نویسی «پایتون» (Python) دوره مقدماتی + گواهینامه
- فیلم آموزش ساختمان داده ها با پایتون + گواهینامه
- فیلم آموزش برنامه نویسی پایتون، دوره تکمیلی، بهینه کردن کدها در Python
- فیلم آموزش مقدماتی کار با پایگاه های داده در پایتون + گواهینامه
- فیلم آموزش برنامه نویسی اندروید در پایتون با فریم ورک «کیوی» (Kivy) + گواهینامه
در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی این مجموعه آموزشی هدایت شده و از فیلمهای پروژهمحور بیشتری دیدن کنید.

جمعبندی
در این مطلب آموزشی از مجله فرادرس، حلقه while در پایتون را به طور کامل بررسی کردهایم. سینتکس اصلی while شامل «شرط» (Condition) و «بدنه دستورات» (Statements) است. در بخش شرطی باید از عملگرهای مقایسهای در پایتون یا عبارتهایی با ارزش True یا False استفاده کنیم.
در این مطلب سعی کردیم که با مثالی درباره شمردن تعداد ارقام عدد، حلقه while را بررسی کنیم. شرط حلقه باید به شکلی طراحی شود که در نهایت مقدار False بگیرد. در این صورت میتوان از ظهور حلقه بینهایت جلوگیری کرد. این حلقه انعطافپذیر برای کار بر روی مسائل مبتنی بر شرط، گزینه بسیار خوبی است.












