حلقه‌ها
حلقه‌ها
🔒
محتوای دوره
مشاهده ویدیو قفل است

برای مشاهده مشاهده ویدیو، ابتدا این دوره را خریداری کنید.

اگر قبلاً این دوره را خریداری کرده‌اید، وارد حساب خود شوید.

متن فیلم

در این ویدیو، ما حلقه‌ها، به ویژه حلقه‌های for و while رو پوشش می‌دیم. در این ویدیو مثال‌های بصری زیادی زده شده. برای مثال‌هایی با داده‌ها، می‌تونید به آزمایشگاه‌ها مراجعه کنید. قبل از اینکه در مورد حلقه‌ها صحبت کنیم، بیایید به تابع range بپردازیم. تابع range یک دنباله مرتب شده را به صورت لیست i خروجی می‌دهد. اگر ورودی یک عدد صحیح مثبت باشد، خروجی یک دنباله است. دنباله شامل همان تعداد عناصر ورودی است، اما از ۰ شروع می‌شود. به عنوان مثال، اگر ورودی ۳ باشد، خروجی دنباله ۰، ۱، ۲ است. اگر تابع range دو ورودی داشته باشد، یا ورودی اول کوچکتر از ورودی دوم باشد، خروجی دنباله‌ای است که از ورودی اول شروع می‌شود. سپس دنباله تا عدد دوم تکرار می‌شود، اما شامل آن نمی‌شود. برای ورودی‌های ۱۰ و ۱۵، دنباله زیر را بدست می‌آوریم. برای قابلیت‌های بیشتر تابع range به آزمایشگاه‌ها مراجعه کنید. لطفاً توجه داشته باشید که اگر از پایتون ۳ استفاده می‌کنید، تابع range مانند پایتون ۲ لیستی را به طور صریح تولید نمی‌کند. در این بخش، حلقه for را پوشش خواهیم داد. ما روی لیست‌ها تمرکز خواهیم کرد، اما بسیاری از رویه‌ها را می‌توان روی تاپل‌ها استفاده کرد. حلقه‌ها یک کار را بارها و بارها انجام می‌دهند. گروه مربع‌های رنگی را در نظر بگیرید. فرض کنید می‌خواهیم هر مربع رنگی را با یک مربع سفید جایگزین کنیم. بیایید به هر مربع یک عدد بدهیم تا کارها کمی ساده‌تر شود و به همه گروه مربع‌ها به عنوان مربع اشاره کنیم. اگر می‌خواستیم به کسی بگوییم که مربع ۰ را با یک مربع سفید جایگزین کند، می‌گفتیم: مربع ۰ را با یک مربع سفید جایگزین کن. یا می‌توانیم بگوییم، برای مربع ۰ در مربع‌ها، مربع ۰ برابر با مربع سفید است. به طور مشابه، برای مربع بعدی، می‌توانیم بگوییم، برای مربع ۱ در مربع‌ها، مربع ۱ برابر با مربع سفید است. برای مربع بعدی، می‌توانیم بگوییم، برای مربع ۲ در مربع‌ها، مربع ۲ برابر با مربع سفید است. ما این فرآیند را برای هر مربع تکرار می‌کنیم. تنها چیزی که تغییر می‌کند، اندیس مربعی است که به آن اشاره می‌کنیم. اگر قرار است کار مشابهی را در پایتون انجام دهیم، نمی‌توانیم از مربع‌های واقعی استفاده کنیم. بنابراین بیایید از یک لیست برای نمایش جعبه‌ها استفاده کنیم. هر عنصر در لیست، رشته‌ای است که نشان‌دهنده رنگ آن است. ما می‌خواهیم نام رنگ هر عنصر را به سفید تغییر دهیم. هر عنصر در لیست دارای اندیس زیر است. این یک سینتکس برای اجرای حلقه در پایتون است. به تورفتگی توجه کنید. تابع range یک لیست تولید می‌کند. کد به سادگی همه چیز را در تورفتگی ۵ بار تکرار می‌کند. اگر قرار باشد مقدار را به ۶ تغییر دهید، این کار ۶ بار انجام می‌شود. با این حال، مقدار i هر بار ۱ واحد افزایش می‌یابد. در این بخش، عنصر iام لیست را به رشته سفید تغییر می‌دهیم. مقدار i روی ۰ تنظیم شده است. هر تکرار حلقه از ابتدای تورفتگی شروع می‌شود. سپس همه چیز را در تورفتگی اجرا می‌کنیم. اولین عنصر در لیست روی سفید تنظیم شده است. سپس به ابتدای تورفتگی می‌رویم. در هر خط به پایین حرکت می‌کنیم. وقتی به خط تغییر مقدار لیست می‌رسیم، مقدار اندیس ۱ را روی سفید تنظیم می‌کنیم. مقدار i یک واحد افزایش می‌یابد. ما این فرآیند را برای اندیس ۲ تکرار می‌کنیم. این فرآیند برای اندیس بعدی ادامه می‌یابد تا زمانی که به عنصر نهایی برسیم. ما همچنین می‌توانیم در پایتون مستقیماً روی یک لیست یا تاپل پیمایش کنیم. حتی نیازی به استفاده از اندیس‌ها نداریم. در اینجا لیست squares را داریم. در هر تکرار لیست، یک عنصر از لیست squares را به متغیر square منتقل می‌کنیم. بیایید مقدار متغیر square را در این بخش نمایش دهیم. برای تکرار اول، مقدار square قرمز است. سپس تکرار دوم را شروع می‌کنیم. برای تکرار دوم، مقدار square زرد است. سپس تکرار سوم را شروع می‌کنیم. برای تکرار نهایی، مقدار square سبز است. یک تابع مفید برای تکرار داده‌ها، enumerate است. می‌توان از آن برای بدست آوردن اندیس و عنصر در لیست استفاده کرد. بیایید از قیاس جعبه با اعدادی که اندیس هر مربع را نشان می‌دهند استفاده کنیم. این سینتکس برای تکرار در یک لیست و ارائه اندیس هر عنصر است. ما از لیست squares و از نام رنگ‌ها برای نشان دادن مربع‌های رنگی استفاده می‌کنیم. آرگومان تابع enumerate لیست است، در این مورد squares. متغیر i اندیس و متغیر square عنصر مربوطه در لیست است. بیایید از قسمت چپ صفحه برای نمایش مقادیر مختلف متغیر square و i برای تکرارهای مختلف حلقه استفاده کنیم. برای تکرار اول، مقدار متغیر قرمز است که مربوط به اندیس صفر و مقدار i صفر است. برای تکرار دوم، مقدار متغیر square زرد است و مقدار i مربوط به اندیس آن، یعنی ۱ است. ما این فرآیند را برای آخرین اندیس تکرار می‌کنیم. حلقه‌های While مشابه حلقه‌های for هستند، اما به جای اجرای یک دستور به تعداد دفعات مشخص، یک حلقه while فقط در صورت برآورده شدن یک شرط اجرا می‌شود. فرض کنید می‌خواهیم تمام مربع‌های نارنجی را از لیست squares به مربع‌های لیست new squares کپی کنیم، اما اگر با مربعی غیر نارنجی مواجه شویم، می‌خواهیم متوقف شویم. ما مقدار مربع‌ها را از قبل نمی‌دانیم. ما به سادگی فرآیند را در حالی که مربع نارنجی است ادامه می‌دهیم یا بررسی می‌کنیم که آیا مربع برابر با نارنجی است یا خیر. اگر نه، متوقف می‌شویم. برای مثال اول، بررسی می‌کنیم که آیا مربع نارنجی است یا خیر. این شرط را برآورده می‌کند، بنابراین مربع را کپی می‌کنیم. این فرآیند را برای مربع دوم تکرار می‌کنیم. شرط برآورده می‌شود، بنابراین مربع را کپی می‌کنیم. در تکرار بعدی، با یک مربع بنفش مواجه می‌شویم. شرط برآورده نمی‌شود، بنابراین فرآیند را متوقف می‌کنیم. این اساساً کاری است که یک حلقه while انجام می‌دهد. بیایید از شکل سمت چپ برای نمایش کد استفاده کنیم. ما از لیستی با نام رنگ‌ها برای نمایش مربع‌های مختلف استفاده خواهیم کرد. ما یک لیست خالی new squares را ایجاد می‌کنیم. در واقع، لیست اندازه نامشخصی دارد. ما اندیس را از 0 شروع می‌کنیم. دستور while به طور مکرر دستورات داخل تورفتگی را اجرا می‌کند تا زمانی که شرط داخل براکت نادرست باشد. ما مقدار اولین عنصر لیست squares را به لیست new squares اضافه می‌کنیم. مقدار i را 1 واحد افزایش می‌دهیم. مقدار عنصر دوم لیست squares را به لیست new squares اضافه می‌کنیم. مقدار i را یک واحد افزایش می‌دهیم. اکنون مقدار موجود در آرایه مربع‌ها بنفش است. بنابراین، شرط مربوط به دستور while نادرست است و ما از حلقه خارج می‌شویم. برای مثال‌های بیشتر از حلقه، که بسیاری از آنها با داده‌های واقعی هستند، به آزمایشگاه‌ها مراجعه کنید.

حلقه‌ها

توضیحات

در این ویدئو، ما انواع حلقه‌ها را پوشش می‌دهیم، به‌ویژه حلقه‌های «for» و «while».

دسترسی محدود
برای مشاهده کامل این قسمت، دوره را تهیه کنید

پس از خرید، به همه قسمت‌های این دوره دسترسی خواهید داشت.

هزینه دوره40٪ تخفیف
1,000,000 تومان600,000 تومان
فهرست دوره

پایتون برای علوم داده، هوش مصنوعی و توسعه

9 ساعت و 44 دقیقه
77 قسمت