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

دستورات if
پایتون دستورات کنترلی if..elif..else را به عنوان بخشی از فرآیند تصمیمگیری ارائه میدهد. این ساختار از سه بلوک مختلف تشکیل شده است: بلوک if، بلوک elif (مخفف else if) و بلوک else.
مثال
در ادامه یک مثال ساده آورده شده است که از if..elif..else استفاده میکند. میتوانید این برنامه را با نمرههای مختلف اجرا کرده و نتیجه را بررسی کنید.
marks = 80
result = ""
if marks < 30:
result = "Failed"
elif marks > 75:
result = "Passed with distinction"
else:
result = "Passed"
print(result)
این کد خروجی زیر را تولید خواهد کرد:
Passed with distinction
دستور match
پایتون از دستور Match-Case نیز پشتیبانی میکند که میتوان از آن به عنوان بخشی از تصمیمگیری استفاده کرد. اگر یک الگوی مشخص با عبارت مطابقت داشته باشد، کد مربوط به آن case اجرا خواهد شد.
مثال
در ادامه یک مثال ساده آورده شده است که از دستور match استفاده میکند.
def checkVowel(n):
match n:
case 'a': return "Vowel alphabet"
case 'e': return "Vowel alphabet"
case 'i': return "Vowel alphabet"
case 'o': return "Vowel alphabet"
case 'u': return "Vowel alphabet"
case _: return "Simple alphabet"
print (checkVowel('a'))
print (checkVowel('m'))
print (checkVowel('o'))
این کد خروجی زیر را تولید خواهد کرد:
Vowel alphabet
Simple alphabet
Vowel alphabet
حلقهها یا دستورات تکرار
بیشتر فرآیندها نیازمند اجرای تکراری یک گروه از دستورالعملها هستند. در اصطلاح برنامهنویسی، به این کار حلقه (loop) میگویند. اگر جریان برنامه به جای رفتن به گام بعدی، به سمت یکی از گامهای قبلی هدایت شود، یک حلقه تشکیل میشود.
دیاگرام زیر نحوه کار حلقه را نشان میدهد -

اگر کنترل برنامه بدون هیچ شرطی به عقب بازگردد، یک حلقه بیپایان تشکیل میشود که مطلوب نیست، زیرا مابقی کد هرگز اجرا نخواهد شد.
در یک حلقه شرطی، تکرار بلوک دستورات تا زمانی ادامه مییابد که شرط خاصی برقرار باشد. پایتون از چندین نوع حلقه مانند حلقه for و حلقه while پشتیبانی میکند که در فصلهای بعدی آنها را بررسی خواهیم کرد.
حلقه for
دستور حلقه for روی اعضای هر دنبالهای، مانند یک لیست، تاپل یا رشته تکرار میشود.
مثال
در ادامه مثالی آورده شده است که از حلقه For برای پیمایش اعضای یک آرایه در پایتون استفاده میکند:
words = ["one", "two", "three"]
for x in words:
print(x)
این کد خروجی زیر را تولید خواهد کرد:
one
two
three
حلقه while
دستور حلقه while تا زمانی که یک عبارت بولین مشخص درست (True) باشد، دستور مورد نظر را به صورت تکراری اجرا میکند.
مثال
در ادامه مثالی آورده شده است که از حلقه While برای چاپ ۵ عدد اول در پایتون استفاده میکند:
i = 1
while i < 6:
print(i)
i += 1
این کد خروجی زیر را تولید خواهد کرد:
1
2
3
4
5
دستورات پرش (Jump Statements)
دستورات پرش برای انتقال اجرای برنامه به یک دستور خاص با شکستن جریان فعلی برنامه استفاده میشوند. در پایتون، دو دستور پرش وجود دارد: break و continue.
دستور break
این دستور حلقه فعلی را خاتمه میدهد و اجرای برنامه را از دستور بعدی ادامه میدهد.
مثال
مثال زیر نحوه استفاده از دستور break را نشان میدهد -
x = 0
while x < 10:
print("x:", x)
if x == 5:
print("Breaking...")
break
x += 1
print("End")
این کد خروجی زیر را تولید خواهد کرد:
x: 0
x: 1
x: 2
x: 3
x: 4
x: 5
Breaking...
End
دستور continue
این دستور از اجرای ادامه بلوک برنامه در دور فعلی صرفنظر کرده و کنترل را به ابتدای حلقه فعلی بازمیگرداند تا تکرار بعدی شروع شود.
مثال
مثال زیر نحوه استفاده از دستور continue را نشان میدهد -
for letter in "Python":
# continue when letter is 'h'
if letter == "h":
continue
print("Current Letter :", letter)
این کد خروجی زیر را تولید خواهد کرد:
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n
پیشرفت مطالعه: وضعیت خواندهشدن این درس فقط در همین مرورگر ذخیره میشود؛ بدون نیاز به حساب کاربری.