لیست در پایتون (انواع، کد و نحوه استفاده و …)

لیست در پایتون
لیست در پایتون

در این مقاله لیست در پایتون را به صورت کامل توضیح می‌دهیم و با مثال کاربردی و تصویری و البته به همراه کد، نحوه استفاده از لیست در پایتون را به شما آموزش می‌دهیم. در انتهای این مقاله شما خواهید توانست با لیست در پایتون کار کنید و پروژه پایتون خود را پیش ببرید.

انواع لیست ها و نحوه اضافه کردن و حذف کردن و توضیح کامل لیست تو در تو

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

در این جلسه و چند جلسه آینده می‌خواهیم به یکی دیگر از مفاهیم بسیار مهمی که درون این زبان وجود دارد، بپردازیم.

می‌خواهیم در مورد لیست‌ها صحبت کنیم. همان‌طور که می‌دانید لیست‌ها مجموعه‌ای از آیتم‌ها را تشکیل می‌دهند. به عنوان مثال لیستی از محصولاتی که درون سبد خرید شما وجود دارد، لیستی از دوره‌هایی که شما تهیه کردید، لیستی از دوره‌هایی که شما دارید آنها را تماشا می‌کنید و دنبال می‌کنید.

نمی‌خواهم خیلی مقدمه‌چینی کنم. به سراغ نرم‌افزار می‌رویم و کارمان را شروع می‌کنیم.
یک فایل جدید ایجاد می‌کنیم و نام آن را list.py می‌گذاریم.

ایجاد فایل جدید
ایجاد فایل جدید

فرض کنید یک سری آیتم‌ها را داریم. برای مثال می‌گوییم آیتم اولی که داریم، دوره‌ی python است؛ آیتم دوم دوره‌ی ionic است؛ آیتم سوم دوره‌ی kotlin است. مثلا سه تا آیتم داریم. می‌خواهیم همه این‌ها را داخل یک لیست قرار دهیم.

خدمت پیشنهادی مرتبط: اگر میخواهید انجام پروژه پایتون خود را برونسپاری کنید، روی کمک ما حساب کنید.

اینجا آیتم‌های ما در متغیرهای جدا تعریف شدند و برای دسترسی به آنها باید با استفاده از نام‌های مختلف به آنها دسترسی داشته باشیم. ما نمی‌خواهیم این‌طور باشد. می‌‌خواهیم همه این‌ها درون یک لیست و یک جا قرار داشته باشند.

برای این کار کافی است یک متغیر تعریف کنیم و برای مثال نام آن را myList می‌گذاریم. نشانه‌ی لیست [] (کروشه باز و بسته) است. حال می‌خواهیم آیتم‌ها را داخل کروشه قرا دهیم. item1، item2 و item3 را به ترتیب داخل کروشه قرار می‌دهیم. الان یک لیستی داریم که item1، item2 و item3 درون آن قرار گرفتند.

ماوس را روی myList قرار می‌دهیم.

قرار دادن ماوس روی myList
قرار دادن ماوس روی myList

مشاهده می‌کنید که type آن list است. برای نوع list پایتون یک سری از functionها را قرار داده است. خودش یک سری function ایجاد کرده است و می‌توان گفت که یک سری ساختارها را ایجاد کرده است که ما بتوانیم از آنها استفاده کنیم.

به عنوان مثال فرض کنید ما بخواهیم تعداد آیتم‌هایی که درون این لیست قرار دارد را به دست آوریم. الان می‌دانیم ۳ تا است. ولی برای مثال فرض کنید که بعداً می‌خواهیم آن را به داخل سبد خرید ببریم یا مثلا ۵۰ تا، ۶۰ تا، ۷۰ تا آیتم درون آن بود. نمی‌آییم یکی یکی آنها را بشماریم. به جای شمردن به سادگی از functionهایی که پایتون برای ما ایجاد کرده است، استفاده می‌کنیم.

در اینجا یک دستوری تحت عنوان len داریم. این len یک object می‌گیرد. object ما در اینجا myList است. کار len این است که تعداد اعضای درونی آن آیتمی که برایش فرستادیم را برای ما برمی‌گرداند.

پرینت کردن len(myList)
پرینت کردن len(myList)

می‌گوییم همان len(myList) را print کند.
یک بار از آن اجرا می‌گیریم. کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

خروجی نشان می‌دهد که ۳ تا آیتم درون آن قرار دارد. ۳ تعداد آیتم‌های درون myList است.
برای مثال یک آیتم دیگر به آن اضافه می‌کنیم که item4 است و مقدار آن JQuery است.
و item4 را به داخل کروشه هم اضافه می‌کنیم. در پایین یک cls تایپ می‌کنیم.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

خروجی گرفتن عدد 4
خروجی گرفتن عدد 4

این بار خروجی ۴ شده است.
البته یک نکته دیگر وجود دارد که اینکه از کروشه استفاده کنیم و آیتم‌ها را یکی یکی داخل آن قرار دهیم، تنها روش ایجاد لیست نیست.

یادتان می‌آید در آن پروژه عملی چه کاری انجام دادیم؟ از function لیست استفاده کردیم، از کلاس list استفاده کردیم. که list در آنجا یک سری آیتم را دریافت می‌کرد. برای مثال یک range داریم که نام آن را myRange قرار می‌دهیم و مقدار آن یک range از عدد ۱ تا عدد ۳۰ است.

یادتان است وقتی myRange آن را print می‌کنیم، چه اتفاقی می‌افتد؟ کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

چاپ کردن range(1,30)
چاپ کردن range(1,30)

مشاهده می‌کنید که همان range(1,30) را چاپ می‌کند. ما نمی‌خواهیم به این صورت چاپ شود. می‌خواهیم به صورت لیست باشد. گفتیم myRange را درون list قرار می‌دهیم. می‌گوییم myRange را به list بدهد و بعد آن را print کند. myRange به داخل list می‌رود و به list تبدیل می‌شود و آن را print می‌کنیم.

حال کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنید که کروشه را خودش قرار داد و آیتم‌ها را از ۱ تا ۲۹ درون آن قرار داد. زیرا عدد آخر یعنی ۳۰ حساب نمی‌شود.

قرار دادن عدد 1 تا 29 داخل کروشه
قرار دادن عدد 1 تا 29 داخل کروشه

اما چگونه می‌توان به آیتم خاصی از این لیست دسترسی پیدا کنیم؟ قبلا به آن اشاره کوچکی کرده بودیم.

وارد نرم‌افزار paint می‌شویم. در اینجا یک سری لیست از رشته‌ها و عناوی داریم. برای مثال دوره python، ionic، kotlin و JQuery.

وقتی که شما لیستی از یک سری آیتم‌ها را ایجاد می‌کنید، خود پایتون برای آنها یک شناسه در نظر می‌گیرد. این شناسه‌ها به صورت پیش‌فرض ایجاد می‌شوند. به عنوان مثال همین کلاس range را مشاهده کنید.

عدد ۱ را پاک می‌کنیم. گفتیم که وقتی برای range از یک عدد استفاده می‌کنیم، از صفر شروع می‌کند و تا یک عدد قبل از عدد وارد شده ادامه پیدا می‌کند.
یک اجرا از آن می‌گیریم. کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنیم که از صفر شروع کرده است و تا ۲۹ ادامه دارد. چرا از صفر شروع کرد؟ این یک قراداد و قاعده است. در listها هم به همین صورت است.

پرینت گرفتن عدد 0 تا 29
پرینت گرفتن عدد 0 تا 29

در اینجا ما یک لیست ایجاد کردیم. آن به صورت پیش‌فرض به آیتم اول شناسه صفر را می‌دهد، به آیتم دوم شناسه ۱ و به آیتم سوم شناسه ۲ و … را می‌دهد.

برخی خدمات پایتون ما برای رشته های مرتبط:

انجام پروژه برق   |   انجام پروژه مکانیک   |   انجام پروژه کامپیوتر

وارد نرم‌افزار paint می‌شویم. یک آرایه یا لیست داریم (در زبان‌های دیگر به آن آرایه می‌گویند اما در پایتون به آن لیست می‌گویند و ساختارش همان است منتها در پایتون یک مقداری متفاوت است)
فرض کنید در این لیستی که داریم، آیتم‌ها از عدد ۱ شروع می‌شوند، ۲، ۳ و ۴ آیتم‌های بعدی هستند.

این آرایه‌ یا لیست ما است. اما شناسه‌ای که به آنها تعلق می‌گیرد، به این صورت است. آیتم اول هر چیزی که باشد، شناسه‌اش صفر است. شناسه‌ی آیتم دوم ۱ است، شناسه‌ی آیتم سوم ۲ است و … همین‌طور به جلو می‌رود. یعنی این‌که اگر بخواهیم به آیتم سوم دسترسی داشته باشیم، باید از شناسه‌ی ۲ استفاده کنیم. همیشه شناسه یک واحد کمتر است.

مثلا ً در اینجا می‌گوییم در لیستی که داریم، می‌خواهیم به آیتم سوم دسترسی داشته باشیم و می‌خواهیم آن را نمایش دهیم. فعلا به خط ۱۲ و ۱۳ نیازی نداریم و آن را به کامنت تبدیل می‌کنیم.

با خط ۱۰ کاری نداریم و می‌گذاریم باقی بماند. می‌خواهیم آیتم سوم را در خروجی چاپ کنیم. در خط ۱۳ می‌گوییم که همان myList را print کند. اول یک خروجی از همین می‌گیریم.

یک cls هم تایپ می‌کنیم. به دلیل این‌که خیلی شلوغ شده بود.

دوباره اجرا می‌گیریم.

در اینجا یک لیست را گذاشته است که آیتم‌های python، ionic، kotlin و jQuery درون آن قرار دارند. ما فقط می‌خواهیم آیتم شماره ۳ را نمایش دهیم.

به این صورت می‌نویسیم که از myList فقط آیتم شماره ۳ یعنی شناسه دوم را نمایش می‌دهد: print(len(myList[2]))
حال از آن اجرا می‌گیریم.

[2] را در خط ۱۰ نباید قرار می‌دادیم و اشتباه بود.
باید در خط ۱۲ قرار می‌دادیم.

حال cls را تایپ می‌کنیم.

حال کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنید که فقط kotlin را به ما نشان می‌دهد.

نشان دادن kotlin
نشان دادن kotlin

برخی خدمات دانشجویی مرتبط

در موسسه انجام پروژه های دانشجویی کارت پروژه، انواع پروژه های شما با قیمت و کیفیت بالا انجام می‌شود. برخی از خداتی که ما ارائه می‌دهیم عبارتند از:

انجام پروژه برنامه نویسی   |   انجام پروژه ماشین لرنینگ

انجام پروژه هوش مصنوعی   |   انجام پروژه شبکه عصبی

اگر بخواهیم آیتم اول را به دست آوریم، چه کاری انجام می‌دهیم؟ در خط ۱۲ به جای [2] می‌نویسیم [0] . زیرا شناسه‌ی آن صفر است.
کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنید که آیتم اول یعنی python را نمایش می‌دهد.
حال می‌خواهیم آیتم آخر را نمایش دهد. شناسه‌ی آن چند است؟ شناسه‌ی آن ۳ است.
یک نگاهی به len داشته باشید.

پرینت گرفتن پایتون
پرینت گرفتن پایتون

len یک عدد (تعداد اعضا) را برمی‌گرداند. تعداد اعضای ما ۴ است و از صفر شروع نمی‌شود. اما می‌خواهیم آیتم آخر را به دست آوریم. نمی‌دانیم که شناسه‌ی آیتم آخر چند است. فرض کنید که یک لیست خیلی بزرگ است و نمی‌دانیم شناسه‌ی آیتم آخر چند است. الان می‌دانیم و می‌گوییم که آیتم با شناسه‌ی۳ است و آن را در خروجی نمایش می‌دهد.

مشاهده می‌کنید که JQuery را برای ما می‌آورد. اما جایی که نمی‌دانیم از همین len استفاده می‌کنیم. len(myList) را copy می‌کنیم و در داخل کروشه خط ۱۲ paste می‌کنیم ولی می‌گوییم یک واحد از آن کم کند. چرا می‌گوییم یک واحد از آن کم کند؟ عدد شناسه‌ی آخر ۳ است. اما تعداد آن ۴ تا است. پس اگر یکی از تعداد آن کم کنیم، شناسه‌ی آیتمِ آخر به دست می‌آید.
در اینجا cls را تایپ می‌کنیم.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

باز هم برای ما JQuery را نمایش می‌دهد.

پرینت کردن JQuery
پرینت کردن JQuery

اگر منهای یک را قرار ندهیم چه اتفاقی می‌افتد؟ یعنی از شناسه‌ای استفاده کنیم که درون این لیست وجود ندارد. علا خط ۱۲ را می‌گذاریم باقی بماند. در خط ۱۳ می‌گوییم که myList[4] را print کند (شناسه ۴ myList را چاپ کند) ما در اینجا شناسه شماره ۴ نداریم. این شناسه منظور همان index است.

شناسه‌ی آخر ۳ است ما یکی اضافه‌تر در نظر می‌گیریم و می‌گوییم ۴.
۴ در این شناسه‌ها وجود ندارد. حال اجرا می‌گیریم و مشاهده می‌کنیم که چه اتفاقی می‌افتد.
کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنید که index error را نشان می‌دهد و می‌گوید list index out of range
پس حواستان باشد که آن عددی که به عنوان index دارید به myList ارسال می‌کنید، در آن آیتم‌ها باشد یعنی آن index را داشته باشید. که در اینجا ما ۴ را نداشتیم. نهایتاً ۳ بود که از طریق تعداد آیتم‌های درون آن لیست منهای ۱ می‌توانید آن را به دست آورید.

اما یک مسئله وجود دارد. گفتیم که این indexها از صفر شروع می‌شود تا آخر همین‌طور یک واحد یک واحد به آن اضافه می‌شود.

سؤال: آیا index منفی داریم؟
در اینجا یک cls تایپ می‌کنیم.

برای مثال می‌گوییم ایندکس ۱- را به آن بدهد.

به نظر شما این دستور چه کار می‌کند؟ چه چیزی را به ما نمایش می‌دهد؟
خط ۱۲ را هم کامنت می‌کنیم. اصلا کار می‌کند؟ بله، کار می‌کند. آیتم‌های ما را نگاه کنید.
حال خروجی را هم مشاهده کنید.

باز هم JQuery را در خروجی نمایش داده است. یعنی از آخر شروع به پردازش کرد. برای مثال در ۱۳ به جای [-1] می‌نویسیم [-2]
دوباره از آن اجرا می‌گیریم.

پرینت گرفتن index error
پرینت گرفتن index error

به سراغ kotlin یعنی یکی مانده به آخر رفته است. یعنی چه؟ مگر ایندکس‌ها از صفر شروع نمی‌شد تا آخر می‌رفت و یکی یکی هم به آن اضافه می‌شد؟ پس ایندکس شماره ۴ می‌شود ۳.

پس این منفی چیست و چگونه دارد کار می‌کند؟ منظور از index منفی همان ایندکس آن آیتم نیست. می‌آید از آخر به اول برمی‌گردد. این‌طور نیست که بگوییم آیتم شماره ۴ ایندکس ۱- را دارد.

خیر، ایندکس آن همان ۳ است. اما وقتی که شما می‌گویید که ایندکس ۱- را برای شما بیاورد، می‌رود از آخر یکی انتخاب می‌کند به شما نشان می‌دهد. از این طرف هم اگر تعداد را اشتباه بزنیم، ارور را دریافت می‌کنیم. به این مثال توجه کنید: مثلا می‌گوییم ایندکس ۴- را بدهد.
کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

این به مشکل نمی‌خورد. چرا؟ زیرا از ۱- شروع شده است. اما اگر عدد ۵- را قرار دهیم و اجرا کنیم، نشان می‌دهیم که خروجی به چه صورت خواهد بود.
کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنید که باز هم index error داریم؛ list index out of range

list index out of range
list index out of range

به سراغ مبحث بعدی می‌رویم. فرض کنید می‌خواهیم چک کنیم که آیا kotlin درون این آیتم‌ها وجود دارد؟ اگر بود بگوید True واگر نبود، بگوید False. مثلا در اینجا مشاهده می‌کنیم. یک متغیر مثل isExistKotlin تعریف می‌کنیم و می‌خواهیم ببینیم Kotlin داخل لیست است؟ آن را مساوی با True قرار می‌دهیم. بله، وجود دارد.

اما فرض کنید که تعداد این آیتم‌ها بسیار زیاد باشد. آن وقت خودمان نمی‌توانیم ببینیم. قابلیتی وجود دارد که این عملیات را انجام دهد.
می‌گوییم kotlin را چک کند که داخل myList است؟ اگر بود چه کار کند؟ آن را به ما برگرداند. مشاهده می‌کنید که به دلیل وجود کلمه‌ی کلیدی in، type آن هم Boolean شده است.

حال در خط بعد می‌گوییم که isExistKotlin را print کند. خط ۱۰ و ۱۳ را هم به کامنت تبدیل می‌کنیم. زیرا نمی‌خواهیم چیز دیگری در خروجی نمایش داده شود.

در پایین هم یک cls تایپ می‌کنیم.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

اشتباه تایپ کردن kotlin به جای koglin
اشتباه تایپ کردن kotlin به جای koglin

مشاهده کنید که می‌گوید False است. چرا False است؟ زیرا اشتباهی به جای kotlin، koglin تایپ کرده بودیم و koglin را پیدا نکرده بود.
حال املای آن را تصحیح می‌کنیم و به صورت kotlin می‌نویسیم. در پایین cls را تایپ می‌کنیم.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

موجود بودن kotlin درون لیست ها
موجود بودن kotlin درون لیست ها

اکنون مشاهده می‌کنید که True را در خروجی نمایش داده است. زیرا kotlin درون لیست وجود دارد.
اگر k را به صورت حروف بزرگ (K) بنویسیم، چطور؟ آن موقع باز هم True می‌شود؟
این بار املای kotlin را به Kotlin تغییر می‌دهیم و خروجی را با هم مشاهده می‌کنیم.
کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنید که خروجی False می‌شود. چرا False می‌شود؟ زیرا حروف بزرگ و کوچک در زبان پایتون متفاوت هستند.

متفاوت بودن حروف کوچک و بزرگ بودن
متفاوت بودن حروف کوچک و بزرگ بودن

در این مباحث که توضیح دادیم، با list آشنا شدیم، نحوه‌ی قرار دادن آیتم‌ها درون list را با هم بررسی کردیم، انواع مختلف آن را با همدیگر کار کردیم و گفتیم که تنها روش گذاشتن آیتم‌ها درون براکت نیست و می‌توانید از کلاس range هم استفاده کنید و در مورد len صحبت کردیم.

گفتیم می‌توانیم تعداد آیتم‌هایی که درون یک list وجود دارد را با استفاده از function لیست به دست آورید. همین‌طور در مورد این نکته صحبت کردیم که آیا یک آیتمی درون لیست وجود دارد یا خیر.
یک file جدید می‌سازیم و نام آن را list.py می‌گذاریم. می‌خواهیم در مورد listها صحبت کنیم.

فرض کنید ما لیستی از اعداد را داریم. برای مثال می‌گوییم myNumbers = [] …
گفتیم که می‌توانیم با دو روش این کار را انجام دهیم. مثلا می‌توانیم از range استفاده کنیم و بگوییم که آن range را به list تبدیل کند، یا این که یکی یکی اعداد را خودمان درون این لیست قرار دهیم. مثلا می‌گوییم عدد ۱، ۲، ۳، ۴، ۵، ۶ را این داخل داریم. حال می‌خواهیم آیتم‌های آن را به صورت جداگانه یکی یکی داخل خروجی نمایش دهیم.

می‌نویسیم index شماره ۰ از myNumbers را print کند. گفتیم که indexها از صفر شروع می‌شوند. اولی index صفر را می‌گیرد و آخری index یکی کمتر از تعداد را می‌گیرد.

پس ۶ تا دستور print می‌نویسیم و به ترتیب indexهای شماره ۰ تا ۵ را می‌خواهیم چاپ کند. ۰ به عضو ۱ اشاره می‌کند و ۵ به عضو ۶ اشاره می‌کند.
یک اجرا از آن می‌گیریم. کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

نمایش دادن عدد 1 تا 6
نمایش دادن عدد 1 تا 6

مشاهده می‌کنید که ۱، ۲، ۳، ۴، ۵، ۶ در خروجی نمایش داده می‌شود.
اما فرض کنید که تعداد آیتم‌هایی که درون این لیست است، زیاد باشد مثلا ۱۰۰ تا عضو باشد. آن وقت باید ۱۰۰ خط کد بنویسیم که این آیتم‌ها را برایمان نمایش دهد که جالب نیست.

ما با حلقه‌ها آشنا شدیم و می‌دانیم که کار حلقه‌ها عملیات تکرار است. اینجا هم عملیات خروجی گرفتن و چاپ کردن دارد تکرار می‌شود. پس ما می‌توانیم خیلی ساده از حلقه‌ها استفاده کنیم.

خط ۵ تا ۱۰ را به کامنت تبدیل می‌کنیم. یک list جدید ایجاد می‌کنیم. یک متغیر با مقادیر زیر تعریف می‌کنیم
myColors = [“red”, “blue”, “green”, “gray”, “yellow”, “orange”]
حال می‌خواهیم یک‌یک این آیتم‌ها را در خروجی چاپ کنیم. این سری می‌خواهیم از حلقه for استفاده کنیم. می‌گوییم به ازای هر رنگی که درون myColors است، عملیات print را تکرار کند و color را نمایش بدهد.

cls را تایپ می‌کنیم تا Terminal پاک شود.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

 اجرا کردن ۵ خط قبلی
اجرا کردن ۵ خط قبلی

در خروجی مشاهده می‌کنید که همین دو تا خط دستور کل کاری که ۵ خط قبلی انجام می‌داد را انجام داد. جلوتر که با classها و objectها آشنا شدیم، کاربرد آن را نشان می‌دهیم که چقدر این حلقه‌ها به درد ما می‌خورند. اما یک مسئله‌ی دیگر وجود دارد.

فرض کنید که ما در این لیست می‌خواهیم یک نوع دیگر هم داشته باشیم. منظورمان چیست؟ الان به لیست myColors نگاه کنید. درون آن همه رنگ و از string ( رشته) هستند، یک کلمه هستند.
آیا می‌توانیم‌ یک عدد هم به آن اضافه کنیم؟ بله. می‌توانیم یک عدد را هم به آن اضافه کنیم. از این نظر ما محدودیتی نداریم.

مشاهده می‌کنید که با اضافه کردن عدد type آن هنوز list است و مشکلی ندارد.
cls را تایپ می‌کنیم.

از آن خروجی می‌گیریم.

مشاهده می‌کنید که 3.6 را نمایش می‌دهد.

نمایش دادن عدد 3.6
نمایش دادن عدد 3.6

حال کمی خروجی را هم بهتر می‌کنیم. در خط ۱۵ color را پاک می‌کنیم و از fstring استفاده می‌کنیم و می‌گوییم که f “the color is : {color}”
cls را تایپ می‌کنیم.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

فقط به خروجی خط آخر نگاه کنید که عدد است اما نوشته شده که color is : 3.6 که این جالب نیست. چگونه می‌توان این را کنترل کرد؟ بسیار ساده است. گفتیم که ما یک class تحت عنوان str داریم. همه آیتم‌های رنگی که داخل list خط ۱۲ قرار دارند، string هستند.

می‌توانیم بخواهیم چک کند که اگر typeای که color دارد، مساوی با str بود، آن موقع جمله the color is : {color} را نمایش دهد و در غیر این صورت آن را نمایش ندهد.
در اینجا cls را تایپ می‌کنیم.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

خروجی را مشاهده می‌کنیم که دیگر عدد 3.6 در آن نمایش داده نمی‌شود. اما list ما مشکلی ندارد.

نمایش ندادن عدد 3.6
نمایش ندادن عدد 3.6

می‌خواستیم نشان دهیم که می‌توانیم آیتم‌های دیگری را از نوع دیگر درون list قرار دهید. اما در خروجی گرفتن می‌توانید آن را کنترل کنید. برای مثال در اینجا می‌گوییم که else جمله‌ی this is not a color را print کند.

در اینجا cls را تایپ می‌کنیم.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

در خط آخر خروجی مشاهده می‌کنید که this is not a color نوشته شده است.

نوشتن this is not a color
نوشتن this is not a color

حال به جای this می‌توانیم بگوییم از fstring استفاده کند و بگوییم که آیتم colorای که دارد iterate می‌کند را در اینجا قرار دهد. اگر color ما رنگ نبود، در اینجا می‌گوید که این رنگ نیست.
cls را تایپ می‌کنیم و Terminal را پاک می‌کنیم.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنید که 3.6 is not color در خط آخر خروجی چاپ شده است.

چاپ شدن 3.6 is not color
چاپ شدن 3.6 is not color

حال فرض کنید که به جای حلقه‌ی for می‌خواهیم از حلقه‌ی while استفاده کنیم. کارکرد حلقه‌ی for را با همدیگر دیدیم. اکنون می‌خواهیم از حلقه‌ی while استفاده کنیم. از همان لیست قبلی در خط ۱۲ استفاده می‌کنیم. در خط ۲۰ دستور print یک خط را قرار می‌دهیم که با خط آنها را جدا کنیم.

می‌خواهیم از حلقه‌ی while استفاده کنیم. اما آیا می‌توانیم به همین سادگی از حلقه‌ی while استفاده کنیم؟ خیر.
حلقه‌ی while به یک شرط نیاز دارد. برای یک list چه شرطی می‌توانیم قرار دهیم؟ می‌توانیم از indexهای آن استفاده کنیم.

در خط ۱۲ مشاهده می‌کنیم که آیتم اول index شماره صفر را می‌گیرد و بقیه آیتم‌ها به ترتیب indexهای شماره ۱، ۲، ۳، ۴، ۵، ۶ و ۷ را می‌گیرند. پس index شماره آخر می‌شود عدد ۶. چرا؟

زیرا ۷ تا آیتم داریم و چون از صفر شروع می‌شود، index آیتم آخر ۶ می‌شود. پس می‌گوییم تا زمانی که index ما کمتر از عدد ۷ است یا کوچکتر مساوی عدد ۶ است، می‌تواند آیتم‌هایش را تکرار کند. پس در اینجا به یک متغیری نیاز داریم که آن index را درون خودش نگهداری کند. یک متغیر به نام index تعریف می‌کنیم و مقدار پیش‌فرض آن را عدد صفر قرار می‌دهیم.

می‌گوییم تا زمانی که این index کوچکتر از index آخرین آیتم است، …
index آخرین آیتم را چگونه می‌توانیم به دست آوریم؟ گفتیم که همیشه index آخرین آیتم یکی کمتر از تعداد آن آیتم‌ها است. در مورد به دست آوردن تعداد آیتم‌ها هم صحبت کردیم و گفتیم از len استفاده می‌کنیم.

می‌گوییم تاز مانی که index ما کوچکتر از تعداد این آیتم‌ها یا تعداد این لیست یعنی len(myColors) است، برای ما index شماره index را برای ما نمایش دهد. index در حال حاضر صفر است. آیا صفر از تعداد اعضای لیست کوچکتر است؟ بله. پس این را چاپ می‌کند.

الان مشاهده می‌کنید که index همیشه صفر است. پس این یک حلقه‌ی بی‌نهایت می‌شود و همواره تکرار می‌شود.

index همیشه صفر است
index همیشه صفر است

پس باید ‌این index را بعد از چاپ کردن تغییر دهیم. یعنی یک واحد به آن اضافه کنیم.
یک واحد به آن اضافه می‌کنیم. index شماره صفر red است و آن را چاپ می‌کند. سپس یک واحد به index اضافه می‌شود و ۱ می‌شود. حال می‌گوییم myColors ِ index شماره ۱ یعنی blue را چاپ کند. blue را نمایش می‌دهد.

شاید مقالات زیر هم برای شما مفید باشند:

بعد دوباره ۱ واحد به آن اضافه می‌شود که ۲ می‌شود. index شماره ۲ از تعداد اعضای لیست که ۷تاست، کمتر است. پس index شماره ۲ که green است را نمایش می‌دهد. دوباره یک واحد به آن اضافه می‌کند الی آخر. index آخرین آیتم ۶ است. زیرا شماره‌گذاری ایندکس‌ها از صفر شروع می‌شود. به index شماره ۶ می‌رسد؟ بله.

چرا؟ زیرا تعداد آن ۷ تا است. در خط ۲۲ یک کامنت قرار می‌دهیم و می‌نویسیم: myColors length = 7
اما آخرین index چطور؟ می‌گوییم myColors Last Index = 6
حال گفتیم تا زمانی که index کوچکتر از این تعداد (۷) باشد و ۶ هم کوچکتر از ۷ است، پس مشکلی ایجاد نمی‌شود.

حال این را در خروجی مشاهده می‌کنیم.
کلیک راست‌ می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنید که باز هم همان خروجی‌ها را برای ما نمایش می‌دهد. اگر بخواهیم همین منطق را پیاده‌سازی کنیم، چطور؟ بسیار ساده در داخل این حلقه در خط ۲۷ یک متغیر تعریف می‌کنیم و برای مثال آن را color می‌نامیم و مقدارش را myColors[index] قرار می‌دهیم.

در خط بعد می‌گوییم چک کند که… (همان دستور خط ۱۵ تا ۱۸ است که می‌توانیم آن را copy کنیم) … اگر type این color رشته بود، آن وقت آن را چاپ کند و در غیر این صورت بگوید که آن رنگ نیست. با هم این ساختار را می‌بینیم.
cls را تایپ می‌کنیم.

کلیک راست می‌کنیم و Run Python File in Terminal را انتخاب می‌کنیم.

مشاهده می‌کنید که خروجی‌ها دقیقا مشابه همدیگر هستند.

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

در این مثال به‌خصوص استفاده از حلقه‌ی for ساده‌تر است. زیرا ما با ۳-۴ خط کد توانستیم همان خروجی را بگیریم و syntax ساده‌تری هم داشت. اما دستور حلقه‌ی while یک مقدار پیچیده‌تر بود. پس چرا از حلقه‌ی while استفاده کردیم؟

گاهاً پیش می‌آید که شما به آن index احتیاج داشته باشید. در حلقه‌ی for نمی‌شود. در حلقه‌ی for خود آیتم را داریم و index آن را نداریم، اما در while ما index را داریم و می‌توانیم از آن استفاده کنیم.
موضوع این جلسه به پایان رسید. یک سری مطالب دیگر هم باقی می‌ماند که ان‌شاءالله آن‌ها را در جلسه‌ی آینده درباره افزودن آیتم به لیست ها با همدیگر بررسی می‌کنیم.

ممنون که در این بخش هم با من همراه بودید و وقت ارزشمندتان را در اختیار بنده قرار دادید. امیدوارم که مطالب این جلسه هم برای شما مفید بوده باشد.

سایر مقالات پیشنهادی:

برای ثبت سفارش لطفا در تلگرام یا واتساپ یا ایتا به شماره 09104503300 پیام دهید.