دستورات شرطی در پایتون و حلقهها
اگر وارد وبسایت جونیورا نمیشدید، الان این مطلب را نمیخواندید! این یک دستور شرطی معمول است که روزانه مشابه آن را چندصدبار شاید تکرار کنید. شرط اصلی این گزاره، وارد شدن به وبسایت جونیورا بود که در صورت برقرار بودن، میتوانستید این مطلب را بخوانید. در غیر اینصورت، امکان خواندن این مطلب برایتان وجود نداشت! حالا همین دستورات شرطی در پایتون چگونه نوشته میشوند؟ در این مطلب، آموزش دستورات شرطی در پایتون و انواع حلقههای پایتون را خواهیم داشت.
دستورات شرطی چیست؟
گاهی اوقات در زندگیمان باید تصمیماتی بگیریم؛ مثل زمانی که فقط نمره ۱۰ به بالا مورد قبول دانشگاه است.
اگر نمره درسی ۱۰ به بالا شد، شما آن درس را قبول شدهاید.
اگر به اندازه کافی تلاش کنید، نمره شما ۱۰ به بالا خواهد شد.
در اینجا دو جمله شرطی نوشتم که به شما نشان میدهد که دستورات شرطی چطور کار میکنند. در برنامهنویسی هم دستورات شرطی برای تصمیمگیری قدم بعدی استفاده میشوند.
فرض کنید قرار است برنامهای بنویسید که اگر عدد زوج از ورودی گرفت،۱ به آن اضافه کند تا فرد شود.
یا اصلا عددی را از ورودی بگیرد و زوج یا فرد بودن آن را مشخص کند.
در برنامهنویسی بارها به تصمیمگیری بین دو یا چندین حالت برخورد میکنید که دستورات شرطی به فریادتان میرسند! حتی ممکن است در یک کد ۱۰۰ خطی، در ۲۵ خط یا بیشتر از آن، از دستورات شرطی استفاده کنید!
دستورات شرطی در پایتون
چندین نوع دستور شرطی در پایتون داریم. در ادامه انواع آن را نام میبریم:
- دستور شرطی if در پایتون
- دستور شرطی if-else در پایتون
- دستور شرطی if تو در تو در پایتون
- دستور شرطی If-elif-else پایتون
دستورات شرطی if در پایتون
سادهترین ساختار تصمیمگیری در کد، ساختار دستور شرطی if است. از if برای مواقعی استفاده میشود که میخواهیم تصمیم بگیریم شرط خاصی یا بلوکی از کد، اجرا شوند یا نه.
سینتکس کلی دستور شرطی if در پایتون
با مفهوم True یا False آشنایید؟ True یعنی صحیح و False یعنی غلط. مثلاً اگر شرطی بگذاریم که اعداد اول را پیدا کند، به اعداد اول مقدار True شرط، و به اعداد غیراول، مقدار False شرط میگوییم. در سینتکسی که بالا نوشتیم، فقط در صورت True بودن، دستور اجرا میشود.
نکته: پایتون به تورفتگی کدها بسیار حساس است. اگر دستور بعد از if را در خط پایین، همراستا با خودِ if شروع میکردید، پایتون آن را نمیخواند. خب این هم از خوبیهای پایتون است؛ نظم را یاد میگیرید و خوانایی کد شما بیشتر میشود.
مثال:
فلوچارت دستورات شرطی if پایتون
مثالی از کد دستور شرطی if در پایتون
دستورات شرطی if-else پایتون
دستور شرطی if چه مشکلی داشت که if-esle هم اضافه شد به پایتون؟ یک وقتهایی هست که ما فقط میخواهیم صحیح بودن (True) شرطی را بررسی کنیم و در صورت برقرار بودن آن، فقط یک دستور انجام شود. در این مواقع از if استفاده میکنیم.
اما گاهی پیش میآید که ما میخواهیم شرطمان بررسی شود، برای مقادیر صحیح (True) آن یک دستور خاص و برای مقادیر نادرست (False) آن، دستور دیگری اجرا شود. در اینجا به if-else احتیاج پیدا میکنیم.
سینتکس if-else در پایتون
فلوچارت if-else پایتون
مثالی از دستور شرطی if-else در پایتون
دستور شرطی if تودرتو در پایتون
همانطور که از نامش هم مشخص است، if تودرتو به معنی یک if در if دیگر است. مثلاً یک وقتی پیش میآید که میخواهیم معدل برتر کلاس را بدست آوریم. اول تصمیم میگیریم که نمرات بالای ۱۷ را ببینیم. ۱۰ نمره بالای ۱۷ داریم. در این شرط مشخص است که ۱۰ معدل الف در کلاس داریم. حالا میخواهیم ببینیم چند نفر ۲۰ یا ۱۹ شدند؟ ۳ نفر کلاً بالای ۱۹ شدند. این هم شرط دومی که در شرط اول وجود داشت.
سینتکس if تودرتو در پایتون
فلوچارت دستور شرطی if تو در تو
مثالی از کد دستور شرطی if تودرتو در پایتون
دستور شرطی if-elif-else در پایتون
برخی مواقع کاربر نیاز دارد تا از بین چند گزینه، یکی را انتخاب کند. در چنین مواقعی از دستور شرطی if-elif در پایتون استفاده میکنیم. سینتکس آن به صورت زیر است:
سینتکس دستور شرطی if-elif در پایتون
فلوچارت دستور شرطی if-elif در پایتون
مثال کد دستور شرطی if-elif در پایتون
حلقهها در پایتون
آنقدر میوههای یک درخت را میچینم تا بالاخره تمام شوند! حلقههای تکرار در پایتون دقیقاً همین شکلیاند، یعنی یک کاری را تا جایی ادامه میدهند یا کلاً بیانتها آن را تکرار میکنند. به این مفهوم در زبانهای برنامهنویسی، حلقه تکرار میگوییم.
پایتون چند نوع حلقه تکرار دارد؛ در ادامه هر یک را نام میبریم.
همچنین در پایتون برخی دستورها هم هستند که در حلقهها و دستورات شرطی مورداستفاده قرار میگیرند.
حلقه for در پایتون
حلقه for در پایتون برای اجرای یک عمل به صورت مکرر بر روی یک توالی مانند «لیست»، «تاپل» یا «رشته» یا سایر اشیاء قابل تکرار، استفاده میشود. در ادامه سینتکس حلقه for در پایتون را خواهیم دید.
سینتکس حلقه for در پایتون
فلوچارت حلقه for در پایتون
نمونه کد حلقه تکرار در پایتون
در این مثال، تکرار بین عناصر محدوده (range) 5 انجام میشود. یعنی خروجی آن اعداد بین ۰ تا ۴ میشود.
حلقه while در پایتون
برای اجرای یک سری دستورات به صورت تکراری تا زمانی که یک شرط برقرار باشد، از حلقه while در پایتون استفاده میشود. در حلقه while، در هنگامی که شرط برقرار نیست، برنامه فوراً از حلقه خارج میشود. حلقه while در دستهبندی حلقههای تکرار نامعین قرار دارد، به این معنی که تعداد دفعات اجرای حلقه به صورت مشخص از قبل تعیین نشده است.
سینتکس حلقه while در پایتون
فلوچارت حلقه تکرار while در پایتون
حلقه while در زبان برنامهنویسی پایتون در دستهبندی تکرار نامعین قرار دارد. تکرار نامعین به این معنی است که تعداد دفعات اجرای حلقه به صورت صریح از قبل مشخص نشده است.
دستوراتی که با یک فاصلهی کاراکتری یکسان بعد از یک ساختار برنامهنویسی تورفته شدهاند، به عنوان بخشی از یک بلوک کد واحد در نظر گرفته میشوند. همانطور که قبلاً هم گفتیم، پایتون از تورفتگی به عنوان روش خود برای گروهبندی دستورات استفاده میکند. هنگام اجرای یک حلقه while، ابتدا عبارت در یک وضعیت صحیح (True) یا غلط (False) ارزیابی میشود و اگر آن درست باشد، بدنهی حلقه اجرا میشود. سپس عبارت دوباره بررسی میشود، اگر هنوز درست باشد، بدنه دوباره اجرا میشود و این فرآیند ادامه دارد تا زمانی که عبارت غلط شود.
تفاوت حلقه for و while در پایتون
تفاوت اصلی بین حلقه for در پایتون نسبت به حلقه while در پایتون این است که حلقه `for` معمولاً زمانی استفاده میشود که تعداد تکرارها معلوم است، در حالی که حلقه `while` در پایتون زمانی استفاده میشود که تعداد تکرارها نامعلوم است.
نمونه کد حلقه while در پایتون
در این مثال، حلقه `while` تا زمانی که شرط `count < 5` درست باشد، اجرا میشود. درون حلقه، ابتدا مقدار فعلی `count` را چاپ میکند و سپس `count` را ۱ واحد افزایش میدهد. وقتی `count` به ۵ برسد، شرط غلط میشود و حلقه متوقف میشود.
دستور break در پایتون چیست؟
دستور `break` در پایتون برای خروج فوری از حلقهها استفاده میشود. وقتی این دستور در حلقه اجرا میشود، بلافاصله از حلقه خارج میشود و اجرای برنامه از دستور بعدی پس از حلقه ادامه مییابد.
به عنوان مثال، در کد زیر، حلقه `while` تا زمانی که `i` کمتر از ۱۰ است، ادامه مییابد. اما وقتی `i` برابر با ۵ میشود، دستور `break` اجرا میشود و برنامه از حلقه خارج میشود:
خروجی این کد اعداد ۰ تا ۴ است.
دستور continue در پایتون
دستور `continue` در پایتون برای رد کردن بخش باقیماندهی حلقه در یک تکرار خاص و ادامه دادن به تکرار بعدی استفاده میشود.
به عنوان مثال، در کد زیر، حلقه `while` تا زمانی که `i` کمتر از ۱۰ است، ادامه مییابد. اما وقتی `i` برابر با ۵ میشود، دستور `continue` اجرا میشود و برنامه به تکرار بعدی حلقه میرود بدون اینکه دستور `print(i)` در این تکرار اجرا شود:
خروجی این کد اعداد ۱ تا ۱۰ است اما ۵ در آن چاپ نمیشود.
دستور pass در پایتون
دستور `pass` در پایتون یک عملگر کنترل جریان است که هیچ کاری انجام نمیدهد. این دستور میتواند در جایی که ساختار کد نیاز به یک بلوک دارد، اما شما نمیخواهید هیچ کاری انجام دهید، استفاده شود.
به عنوان مثال، شاید شما بخواهید یک تابع یا یک حلقه را بعداً پیادهسازی کنید، اما در حال حاضر فقط میخواهید ساختار کد را داشته باشید. در این صورت، میتوانید از `pass` استفاده کنید:
در این مثال، `pass` به ما اجازه میدهد تا تابع `my_function` و حلقه `for` را بدون خطا تعریف کنیم، حتی اگر هنوز هیچ کدی در آنها ننوشتهایم.
سوالات متداول
چه زمانی باید از حلقه `for` استفاده کنم؟
حلقه `for` معمولاً زمانی استفاده میشود که تعداد دفعات تکرار حلقه معلوم است، مثلاً زمانی که میخواهید روی تمامی عناصر یک لیست، تاپل یا رشته پیمایش کنید.
چه زمانی باید از حلقه `while` استفاده کنم؟
حلقه `while` زمانی استفاده میشود که تعداد دفعات تکرار حلقه نامعلوم است و تکرارها بر اساس برقراری یک شرط خاص ادامه مییابند.
چه زمانی باید از دستور `break` استفاده کنم؟
دستور `break` زمانی استفاده میشود که بخواهید به طور فوری از حلقه خارج شوید. این معمولاً زمانی است که یک شرط خاص در حین اجرای حلقه برقرار میشود و شما میخواهید حلقه را متوقف کنید.
چه زمانی باید از دستور `pass` استفاده کنم؟
دستور `pass` زمانی استفاده میشود که نیاز به یک بلوک کد دارید، اما نمیخواهید هیچ کار خاصی انجام دهید. این معمولاً زمانی است که یک تابع یا حلقه را بعداً پیادهسازی میکنید.
چه زمانی باید از دستور `continue` استفاده کنم؟
دستور `continue` زمانی استفاده میشود که بخواهید بخش باقیماندهی یک تکرار حلقه را رد کنید و به تکرار بعدی حلقه بروید.
چه زمانی باید از `if-elif-else` استفاده کنم؟
زمانی که میخواهید بر اساس چندین شرط متفاوت، عملیات مختلفی را انجام دهید، از ساختار `if-elif-else` استفاده میکنید.
چه تفاوتی بین `break` و `continue` در حلقهها وجود دارد؟
دستور `break` حلقه را کاملاً متوقف میکند، در حالی که `continue` فقط تکرار جاری حلقه را متوقف میکند و به تکرار بعدی میرود.
چه تفاوتی بین حلقه `for` و حلقه `while` وجود دارد؟
حلقه `for` معمولاً زمانی استفاده میشود که تعداد دفعات تکرار حلقه معلوم است، در حالی که حلقه `while` زمانی استفاده میشود که تعداد دفعات تکرار حلقه نامعلوم است و تکرارها بر اساس برقراری یک شرط خاص ادامه مییابند.
چه تفاوتی بین `pass` و توضیحات (`#`) در پایتون وجود دارد؟
دستور `pass` یک دستور کنترل جریان است که هیچ کاری انجام نمیدهد و میتواند در جایی که ساختار کد نیاز به یک بلوک دارد، استفاده شود. توضیحات (`#`) در پایتون برای افزودن یادداشتها و توضیحات به کد استفاده میشوند و توسط مفسر پایتون نادیده گرفته میشوند.
چه تفاوتی بین `if-else` و `if-elif` در پایتون وجود دارد؟
ساختار `if-else` فقط دو شرط را بررسی میکند: اگر شرط `if` درست باشد، بلوک کد `if` اجرا میشود، در غیر این صورت، بلوک کد `else` اجرا میشود. ساختار `if-elif` برای بررسی چندین شرط متفاوت استفاده میشود. اگر شرط `if` درست باشد، بلوک کد `if` اجرا میشود. در غیر این صورت، شرایط `elif` یکی پس از دیگری بررسی میشوند تا یکی از آنها درست باشد. اگر هیچ یک از شرایط `if` یا `elif` درست نباشد، بلوک کد `else` (اگر وجود داشته باشد) اجرا میشود.
جمعبندی
دستورات شرطی و حلقهها در پایتون بسیار کاربردی هستند. در این مطلب هرچه که برای یادگیری بیشتر این بخش از پایتون نیاز داشتید را آماده کردیم. در نهایت میتوانید با استفاده از کتابخانه های پایتون مخصوص کودکان برنامه نویسی راحت تری را تجربه کنید.
اگر سوالی داشتید، حتماً آن را در بخش نظرات از ما بپرسید.