آموزش پایتون - کنترل جریان

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

اکثر زبان‌های برنامه‌نویسی از جمله پایتون، قابلیتی را برای کنترل جریان اجرای دستورالعمل‌ها ارائه می‌دهند. به طور معمول، دو نوع دستور کنترل جریان در هر زبان برنامه‌نویسی وجود دارد و پایتون نیز از آن‌ها پشتیبانی می‌کند.

دستورات تصمیم‌گیری

دستورات تصمیم‌گیری در برنامه‌های پایتون استفاده می‌شوند تا برنامه بتواند بر اساس مقدار یک عبارت بولین (Boolean)، تصمیم بگیرد که کدام گروه از دستورالعمل‌های جایگزین اجرا شوند.

دیاگرام زیر نحوه کار دستورات تصمیم‌گیری را نشان می‌دهد -

decision making statements

دستورات 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) می‌گویند. اگر جریان برنامه به جای رفتن به گام بعدی، به سمت یکی از گام‌های قبلی هدایت شود، یک حلقه تشکیل می‌شود.

دیاگرام زیر نحوه کار حلقه را نشان می‌دهد -

looping_works

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

در یک حلقه شرطی، تکرار بلوک دستورات تا زمانی ادامه می‌یابد که شرط خاصی برقرار باشد. پایتون از چندین نوع حلقه مانند حلقه 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

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.