در این آموزش به کاربرد حلقه for در پایتون و نحوه استفاده از آن میپردازیم. یکی از رسالت های ما در کارت به عنوان سایت انجام پروژه های دانشجویی این است که به سوالات و دغدغه های شما در مورد پروژه ها و نرم افزارها پاسخ دهیم. یکی از مواردی که بسیاری از دانشجویان به آن نیاز داشتند، اطلاعات در زمینه پایتون است. اگر آموزش در زمینه پایتون دغدغه شما هم هست، پیشنهاد میکنیم این محتوا را هم مطالعه کنید.
کاربردحلقه ها در برنامه نویسی پایتون
میخواهیم در مورد حلقهها صحبت کنیم و بگوییم که چه هستند، به چه دردی میخورند و کاربردشان چیست.با یک مثال آن را توضیح میدهیم. فرض کنید که شما میخواهید یک عملیاتی مثل چاپ کردن یک عدد را تکرار کنید. یعنی چه؟ یعنی مثلا در ورودی عدد ۱ تا ۱۰ را چاپ کنید.
برنامه ویژوال استودیو کد را باز میکنیم و یک file جدید ایجاد میکنیم و نام آن را Loop.py میگذاریم.
میخواهیم در مورد حلقهها صحبت کنیم.
فرض کنید میخواهیم یک عملیات مانند چاپ کردن عدد ۱ تا ۵ را انجام دهیم و بازه ۱ تا ۵ را در خروجی چاپ کنیم. الان ساده است و تعداد آنها کم است. در ۵ خط کد میتوان آن را نوشت.
حال فرض کنید که این عملیات همینطور تکرار شود تا به عدد ۱۰۰ برسد.
دیگر ما نمیتوانیم این کار را انجام دهیم. البته امکان انجام آن وجود دارد، ولی منطقی نیست.
نگاهی به این ساختار بیاندازید و توجه کنید که چه اتفاقی در حال انجام است. عدد ۱ دارد چاپ میشود، عدد ۲ هم دارد چاپ میشود. عدد ۳، ۴ و … تا ۱۰۰ هم چاپ میشوند.
پس عملیات چاپ کردن یک عدد درون خروجی دارد تکرار میشود. پس حلقهها برای تکرار هستند.
شاید بگویید این مثالی که بیان کردیم کاربردی نیست. به چه دردی میخورد؟
وارد سایت خودمان میشویم.

نگاهی به ساختار دورههایی که در سایت toplearn قرار دادم، بیندازید. ببینید که چگونه در کنار هم قرار گرفتند. همه دورهها بلا استثنا شامل تصویر، عنوان، مدت زمان و وضعیتشان که آیا رایگان هستند یا نقدی هستند. مواردی مانند تعداد نظرات، تعداد دانلود و بازدید را هم در اینجا داریم.
اما تمامی این موارد برای همه دورههای یکسان است. اگر دقت کنید، تک تک این آیتمها دارند تکرار میشوند. فقط آن مقادیر خود آن آیتم است که نگاهی به ساختار دورههایی که در سایت toplearn قرار دادم، بیندازید. ببینید که چگونه در کنار هم قرار گرفتند.
همه دورهها بلا استثنا شامل تصویر، عنوان، مدت زمان و وضعیتشان که آیا رایگان هستند یا نقدی هستند. مواردی مانند تعداد نظرات، تعداد دانلود و بازدید را هم در اینجا داریم.
اما تمامی این موارد برای همه دورههای یکسان است. اگر دقت کنید، تک تک این آیتمها دارند تکرار میشوند. فقط آن مقادیر خود آن آیتم است که دارد تغییر میکند. منظور یک enter میزنیم.
به این syntax به خوبی دقت کنید. البته مواردی که در اینجا نوشته شده، یک مقدار گمراهکننده است. نامهای آن را تغییر میدهیم.

این طور نوشتن منطقیتر است. به اروری که در اینجا وجود دارد توجه نکنید.
خدمات مرتبط در کارت پروژه
ما در کارت پروژه خدمات مرتبط با پایتون را ارائه میدهیم. همینطور خدمات متنوعی را برای رشته هایی که با پایتون سر و کار دارند، ارائه میکنیم. در زیر برخی از این خدمات را آوردهایم:
ما فقط میخواستیم syntax آن را با همدیگر ببینیم. میگوید به ازای هر آیتمی که درون یک لیست قرار دارد، عملیات pass را انجام دهد. یعنی فرض کنید ما لیستی از اعداد داریم. میخواهیم به ازای هر عددی که درون لیست اعداد ما قرار دارد، این عملیات را انجام دهد. اصطلاحا به این collection که در اینجا قرار دارد، iterable_object میگویند.
اما در واقع همان collection است. منظور چیست؟ منظور یک مجموعهای است که شما میتوانید درون آن پیمایش کنید. برای همین به آن iterable_object میگویند که در اصل همان collection است.
اما این collection چه چیزهایی میتواند باشد؟ در اینجا چند مثال بیان میکنیم.
collectionای که داریم میتواند لیستی از اعداد باشد یا برای مثال لیستی از کاراکترهایی که یک string دارد، باشد و حتی میتواند یک range و یک بازه عددی مانند range(1,5) (عدد ۱ تا ۵ مانند مثال اول) باشد و باقی موارد مانند لیستی از دورهها، لیستی از مدرسین و … هر چیزی میتواند باشد.
حال اینها را با همدیگر پیادهسازی میکنیم.
در قدم اول میخواهیم در مورد لیستی از اعداد صحبت کنیم. در مورد لیستها در جلسات گذشته صحبت کردیم. هنوز مفصل در مورد آن توضیح ندادیم. فقط گفتیم که یک لیست به چه صورتی تعریف میشود. پس با هم این کار را انجام میدهیم.
میخواهیم سه تا مثال را بیان کنیم؛ لیستی از اعداد، لیستی از کاراکترهایی که درون یک رشته قرار دارند و یک بازهی عددی. در مورد بازه عددی الان توضیح میدهیم.
یک متغیر به نام listOfNumbers را تعریف میکنیم و مقدار آن را یک لیست از اعداد [23 , 54 , 67, 89, 34, 9] قرار میدهیم. گفته بودیم که لیستها درون یک براکت قرار میگیرند که با کاما از یکدیگر جدا میشوند.
در پایین مینویسیم listOfCharacters.
این کلمه چگونه تعریف میشود؟ این را در اینجا قرار نمیدهیم و برای آن متغیری تعریف نمیکنیم. به جای این که بنویسیم listOfCharacters ، به طور مثال مینویسیم myName و مقدار آن را mohammad قرار میدهیم.
و متغیر بعدی که تعریف میکنیم را rangeOfNumbers مینامیم و مقدار آن مساوی است با متد range ؛ این متد چه کار میکند؟ یک نقطه شروع و یک نقطه پایان دریافت میکند.
فعلا با این step کاری نداریم. بعدا مفصل در مورد این متد صحبت میکنیم. وقتی که تابعها را مطرح کردیم، میگوییم که range چیست.
برای اینکه یک بازه عددی را ایجاد کنید، میتوانید از این متد استفاده کنید. برای مثال میخواهیم از عدد ۱ تا عدد ۱۰ شروع کند. پس rangeOfNumbers مقدارش بازه عددی از ۱ تا ۱۰ تعریف شده است. یک لیست میشود و درو خودش نگهداری میکند.
حال با هم حلقههای این مثالها را پیادهسازی میکنیم. دستورات هر مثال را زیر همان متغیر مینویسیم.
برای مثال اول (listOfNumbers) میگوییم به ازای هر عددی که درون listOfNumbers قرار دارد، خود number را print کند. حال با هم خروجی را مشاهده میکنیم. کلیک راست میکنیم و Run Python File in Terminal را انتخاب میکنیم.
سایر خدمات مرتبط با پایتون
در ادامه برخی از خدمات دیگری که در زمینه پایتون به شما ارائه میشود را آوردهایم. اگر برای انجام پروژه های خود در زمینه های دیگری از جمله موارد زیر نیاز به کمک دارید، میتوانید از خدمات کارت پروژه استفاده کنید:

این خروجی ا ۱ تا ۱۰۰ به خاطر دستورات pint که در خط ۳ تا ۱۰ وجود دارد میباشد. آنها را به کامنت تبدیل میکنیم. یک cls تایپ میکنیم.
کلیک راست میکنیم و Run Python File in Terminal را انتخاب میکنیم.
خروجی را مشاهده میکنید که ۲۳، ۵۴، ۶۷، ۸۹ و ۳۴ و ۹ هستند. همه آنها به ترتیب چاپ شدهاند. به واژه «به ترتیب» دقت کنید.

یک بار با همدیگر روند for را چک میکنیم. گفتیم که به ازای هر عددی (number) که درون لیست اعداد ما وجود دارد، این عملیات (print) را انجام دهد.
عدد اول در این لیست ۲۳ است. پس number ما در آن پیمایش اول ۲۳ است. میخواهد عدد ۲۳ را در خروجی چاپ کند. دستور دیگری داریم؟ خیر. به سراغ عدد بعدی درون لیست میرود که عدد ۵۴ است.
دوباره number میشود ۵۴. حال میخواهد که عدد ۵۴ را چاپ کند. باز هم دارد تکرار میکند که خود عدد ۵۴ را print کند. کار آن تمام میشود به سراغ عدد بعدی که ۶۷ است، میرود. باز هم این عملیات برای عدد ۶۷ تکرار میشود. پس این number یک بار ۲۳ است، یک بار ۵۴ است، یک بار ۶۷ است و الی آخر.
حال فرض کنید این اعدادی که در اینجا قرار دادیم، همان دورههای ما در سایت toplearn است. میگوید به ازای هر کدام از این دورههایی که در این data base داریم، تصویر آن را درون این باکس قرار بدهیم، تعداد نظرات را در قسمت مشخصشده، تعداد دانلودها را در این قسمت و تعداد بازدیدها را هم در این قسمت قرار بدهیم. عنوان آن در پایین تصویر باشد و اینکه مدت زمان آن را در پایین سمت راست قرار دهد و رایگان بودن یا نبودن را هم در پایین سمت چپ مشخص کند.
حال این عملیات مشخص کردن جایگاهها را برای آن دورههای مختلف تکرار کند. دقیقا به همین صورت میتوان از حلقه for استفاده کرد.
حال به سراغ مورد بعدی میرویم. میخواهیم در مورد myName صحبت کنیم.
ما فعلا دستور for در بالا را به کامنت تبدیل میکنیم زیرا نمیخواهیم در خروجی نمایش داده شود. میگوییم به ازای هر کاراکتری که درون myName وجود دارد، خود آن کاراکتر را print کند. تکتک کاراکترهای آن را در خروجی یکی یکی چاپ میکند. در پایین یک cls تایپ میکنیم.
کلیک راست میکنیم و Run Python File in Terminal را انتخاب میکنیم.

مشاهده میکنید که حرفها را یکی یکی جدا کرده است و در هر خط حرفها را چاپ کرده است.
این نکته را هم اضافه کنم که شما میتوانید عملیات دیگری را نیز انجام دهید و فقط لازم نیست که حتما print کنید یا اصلا لزومی ندارد که فقط خودش را print کنید.
به عنوان مثال این قسمت (دستور for جدید) را تبدیل به کامنت میکنیم و به همان مثال قبلی که داشت اعداد را چاپ میکرد برمیگردیم.
این بار میگوییم number*2 را برای ما چاپ کند. یک cls تایپ میکنیم.
کلیک راست میکنیم و Run Python File in Terminal را انتخاب میکنیم.

مشاهده میکنید که همه اعداد را یکی یکی در ۲ ضرب میکند و در خروجی نمایش میدهد. ۲۳ ضربدر ۲ میشود ۴۶، ۵۴ ضربدر ۲ میشود ۱۰۸ … هر عملیاتی که دوست دارید میتوانید به ازای تکتک آیتمهایی که درون این لیست وجود دارند، انجام دهید. بعدا مفصل در مورد listها صحبت خواهیم کرد.
Dictionary، list و … را که توضیح دهیم، کلا متوجه خواهید شد که چگونه میتوانید از این حلقهها در پروژههای واقعی استفاده کنید. دوباره این دستور for را به کامنت تبدیل میکنیم و به سراغ مثال rangeOfNumbers میرویم.
منظور از range چیست؟ این range یک list ایجاد میکند و از عددی که به آن دادیم، شروع میکند تا عددی که پایان یافته است ادامه میدهد. منتها عدد پایانیافته با عدد دوم داخل پرانتز (۱۰) یکی نیست و به اندازه یک واحد کمتر است. یعنی از ۱ تا ۹ برای ما یک آرایه ایجاد میکند.
حلقه for را برای آن مینویسیم. به ازای هر (number) numای که درون rangeOfNumbers قرار دارد، میخواهیم که خود (number) num را print کند. یک cls تایپ میکنیم که Terminal پاک شود.
حال کلیک راست میکنیم و Run Python File in Terminal را انتخاب میکنیم.

مشاهده میکنید که از ۱ تا ۹ را چاپ کرده است. دیگر عدد ۱۰ در آن وجود ندارد.
حال به یک نکته دیگر اشاره میکنیم.
در تصویر فوق مشاهده میکنید که برای عدد دوم range داخل پرانتز نوشته شده stop؛ همان عدد ۱۰ را به آن میدهیم. و مورد بعدی گفته است step که یعنی چند تا چند پیش برویم؟ مثلا میخواهیم ۲ تا ۲ تا جلو برود. cls را تایپ میکنیم.
کلیک راست میکنیم، Run Python File in Terminal را انتخاب میکنیم و خروجی را مشاهده میکنیم.

در خروجی اعداد ۱، ۳، ۵، ۷ و ۹ نمایش داده میشوند. این اعداد ۲ تا ۲ تا جلو رفتهاند. این عدد ۲ step این بازه است. بعدا در مورد خود تابع range بیشتر توضیح میدهیم.
اینجا در خروجی میخواهیم که num را به توان ۲ برساند یعنی اینکه num را در خودش ضرب کند و بعد در خروجی چاپ کند.
حال کلیک راست میکنیم و Run Python File in Terminal را انتخاب میکنیم.
مشاهده میکنیم که اعداد ۱، ۴، ۹، ۱۶، ۲۵، ۳۶، ۴۹، ۶۴ و ۸۱ در خروجی چاپ میشوند.
دیگر هر عملیاتی که بخواهیم میتوانیم در آن دستور برای مقادیر داخل range انجام دهیم.
در مورد حلقه for صحبت کردیم. گفتیم به ازای هر آیتمی که درون یک لیست قرار دارد، یک کاری را انجام دهد. برای مثال در اینجا یک range داریم که از صفر شروع میشود و تا عدد ۱۹ ادامه دارد که اگر ۲۰ را قرار دهیم، دیگر ۲۰ را به حساب نمیآورد.
در این جلسه درباره حقله for صحبت کردیم و اما در جلسه بعدی درباره حلقه while میخواهیم صحبت کنیم .
ارسال پاسخ