آشنایی با انواع دستورات در زبان برنامه نویسی پایتون

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
در یک تقسیم بندی می توان دستورهای پایتون را در دو دسته ی دستورهای ساده (Simple Statements) و دستورهای مرکب (Compound Statements) قرار داد که در این آموزش قصد داریم با ذکر مثال هایی، به بررسی این دو گروه بپردازیم.

دستورهای ساده:
تا به حال تمام چیزهایی که در زبان پایتون آموخته ایم را در قالب دستورات ساده ای در اختیار مفسر قرار داده ایم تا آن ها را اجرا کند. به طور مثال دستورهای زیر که در حالت تعاملی IDLE وارد می کنیم را در نظر بگیرید:

>>> num1 = 4 + 5
>>> message = """Welcome to
SokanAcademy.com"""
>>> num1 += 8
>>> 2 + 3 >= 6
False
همان طور که می بینیم بعضی از این دستورها خروجی خاصی ندارند، مثل سه دستور اول و در حقیقت با وارد کردن آن ها مفسر پایتون در پشت صحنه عملیات انتساب را انجام می دهد و ما بعداً می توانیم از نتایج این عملیات استفاده کنیم؛ مثلاً متغیر message که در این عملیات در حافظه ایجاد و به آبجکتی از نوع استرینگ "Welcome to SokanAcademy.com" منتسب شده است را چاپ کنیم. این در حالی است که دستور چهارم یک خروجی قابل مشاهده به ما نشان می دهد. همان طور که در این مثال ها می بینید هر یک از این دستورها را به صورت مستقل از هم در یک خط مثل دستور اول، یا در بیش از یک خط مثل دستور دوم نوشته ایم و اجرا می کنیم. در زبان پایتون اصطلاحاً به هر یک از این دستورهای ساده، یک Logical Line یا «سطر منطقی» گفته می شود.

هشدار
به خاطر داشته باشید که دستورات ساده ی پایتون را می توان با قرار دادن کاراکتر \ در میانه ی دستور شکست و در سطر بعدی ادامه داد اما این در حالی است که نمی توانیم از این کاراکتر برای شکستن کامنت ها که در آموزش قبل با سینتکس آن ها آشنا شدیم استفاده کنیم و کامنت مورد نظر خود را در چند سطر بنویسم؛ چرا که مفسر پایتون چیزهایی که در یک کامنت می نویسیم را نادیده می گیرد.
برای مثال دستورات ساده ی زیر را در نظر بگیرید:

>>> message = "Welcome to
SyntaxError: EOL while scanning string literal
>>> message = "Welcome to\
SokanAcademy.com"
>>> message = "Welcome to \ # This is a line continuation character.
SyntaxError: EOL while scanning string literal
همان طور که در دستور اول می بینید، وقتی بدون استفاده از کاراکتر \ دکمه ی اینتر را می زنیم تا ادامه ی دستور را در خط بعدی بنویسیم، مفسر پایتون بلافاصله اعلام خطای سینتکسی می کند؛ با این حال زمانی که از کاراکتر \ استفاده می کنیم به راحتی می توانیم به سطر بعدی برویم و ادامه ی دستور خود را وارد کنیم. در دستور سوم هم می بینید که بعد از قرار دادن کاراکتر \ نمی توان آن خط را ادامه داد و توضیح در آن وارد کرد، هرچند که مفسر توضیحات را نادیده می گیرد.

گرچه اکیدا توصیه می شود که دستورات ساده و مستقل از هم در خطوط جداگانه وارد شوند، با این حال برای نوشتن آن ها در یک خط کافی است بین آن ها کاراکتر ; را قرار دهیم. به مثال زیر که در حالت تعاملی IDLE وارد شده است توجه کنید:

>>> num = 2 ; num += 8 ; num
10
همان طور که می بینید در این خط سه دستور متفاوت وارد شده است که با کاراکتر ; از هم جدا شده اند.

نکته
توجه: در این حالت فراموش کردن درج کاراکتر ; (سمی کالن) بین دستورات منجر به بروز خطای سینتکسی می شود.
دستورهای مرکب:
دستورهای مرکب اجرای سایر دستورها را کنترل می کنند یا بر روند اجرای آن ها تأثیر می گذارند. به طور مثال دستورهای شرطی در این گروه جای می گیرند که در ساده ترین حالت ممکن در صورت برقراری یک شرط خاص مفسر یک سری از دستورات را اجرا می کند، و در صورتی که شرط برقرار نباشد آن دستورات را نادیده می گیرد و اجرا نمی کند (در آموزش های آتی، با دستورات شرطی بیشتر آشنا خواهیم شد.)

یک دستور مرکب از یک یا چند Clause (کلاز یا بند) تشکیل می شود. یک بند از یک سر بند یا Header و یک بدنه یا Suite تشکیل شده است. هر سر بند با یک کلمه ی کلیدی یکتا آغاز می شود و با کاراکتر دو نقطه : پایان می یابد. پیش از این لیستی از کلمات کلیدی پایتون را به شما معرفی کردیم و گفتیم این کلمات شناسه هایی هستند که به صورت پیش فرض تعریف شده اند و معنای خاصی را به مفسر پایتون می رسانند. مثال هایی از تعریف هدر برای یک بند به صورت زیر است:

if x > y:
def move():
همان طور که می بینید این هدرها با کلمات کلیدی if و def آغاز شده اند و با : پایان می یابند (در آموزش های بعدی با مفهوم هر یک از این کلمات کلیدی آشنا خواهیم شد.) بدنه، گروهی از دستورات هستند که اجرای آن ها در یک بند کنترل می شود. دستورات بدنه ی یک بند را می توان به دو صورت نوشت:

1- تمام دستورات بدنه را در همان خطی که سربند را وارد کردیم بنویسیم و در صورتی که چند دستور وجود داشته باشد آن ها را با سمی کالن ; از هم جدا کنیم. فرم کلی چنین بندی به صورت زیر خواهد بود:

Clause Header : Statement1 ; Statement2 ; …
به طور مثال:

if x > y: x = 0; y += 1; z = x+y
همان طور که می بینید در مثال بالا بدنه از سه دستور ساده تشکیل شده است که در همان خطی که هدر قرار دارد نوشته شده اند و با سمی کالن از هم جدا شده اند.

2- دستورات بدنه را در سطرهای مجزا که در یک بلوک کد مجزا از بلوک سطر سربند قرار دارند بنویسیم. بلوک بندی دستورات در بسیاری از زبان های برنامه نویسی هم چون جاوا و سی با استفاده از آکولادهای باز و بسته {} انجام می شود؛ حال این که در پایتون برای بلوک بندی کدها از تورفتگی یا Indentation استفاده می شود. تورفتگی با استفاده از فشردن کلیدهای Space یا Tab و ایجاد فاصله از آغاز سطر مشخص می شود.

نکته
استاندارد تورفتگی در پایتون مقداری برابر با فضای خالی ایجاد شده بواسطه ی چهار بار فشردن کلید Space یا یک بار فشردن کلید Tab است. البته در زمان نیاز، IDLE به صورت خودکار تورفتگی هر بلوک را ایجاد می کند.
در ادامه، مثالی از یک دستور مرکب که به این فرم نوشته شده است را مشاهده می کنید:

if x > y:
x = 0
y += 1
z = x+y
>>>
در حالت تعاملی IDLE زمانی که تمام دستورات بدنه را وارد کردیم کافی است دو بار کلید اینتر را فشار دهیم تا مفسر بلوک بدنه را ببندد و دستور مرکب را اجرا کند. اما در حالت اسکریپتی کافی است خودمان اشاره گر را جا به جا کنیم تا به بلوکی که هدر در آن قرار دارد برگردیم و ادامه ی دستورها را وارد کنیم:

if x > y:
x = 0
y += 1
z = x + y
age = 5
همان طور که می بینید، بدنه ی دستور مرکب if با دستور z = x + y پایان یافته است و دستور بعدی از ابتدای سطر بعد آغاز شده است و تورفتگی ندارد. در صورتی که بدنه ی یک بند را به فرم دوم بنویسیم می توانیم از دستورات مرکب تو در تو استفاده کنیم. به طور مثال در قطعه کد زیر می بینید که دستور if دوم در دستور if اول آمده است:

if x > y:
if z > x:
print("z is the greatest.")
print("x is greater than y.")
print("We found the greatest.”)
گفتیم که بعضی از دستورات مرکب از چند بند تشکیل می شود؛ در این صورت هدرهای تمام بندها در یک سطح از تو رفتگی قرار می گیرند. به طور مثال دستور مرکب if … else دارای دو بند است؛ بند اول با کلمه ی کلیدی if و بند دوم با کلمه ی کلیدی else آغاز می شود. بنابراین میزان تورفتگی هدر دو بند باید برابر باشد:

if x > y:
print("x is greater than y.")
else:
print("y is greater than x.")
در این دستور مرکب انتظار داریم اگر شرط if برقرار بود بدنه ی بند اول دستور و در غیر این صورت بدنه ی بند دوم اجرا گردد.
 

برخی موضوعات مشابه

بالا