عبارات شرطی در پایتون
در هنگام کد نویسی گاهی شرایطی پیش می آید که نیاز به تصمیم گیری داریم، یعنی باید شرایط را بررسی کنیم و بر اساس شرایط به وجود آمد تصمیم بگیریم که برنامه ما چه عملیات متناسبی را در قبال شرایط انجام دهد، در اینجاست که عبارات شرطی اهمیت خودرا نشان می دهند، عبارات شرطی عباراتی هستند که شرایط مورد نظر ما را بررسی می کنند و در پاسخ یک عبارت بولی که مشخص کننده درست یا غلط بودن شرایط مد نظر ماست را بر می گردانند.
انواع توابع شرطی به عبارت اند از :
if –
if else –
if … Elif –
عبارات شرطی سه تایی –
که به تفصیل به هر یک خواهیم پرداخت :
فهرست مطالب
شرط if
در این نوع عبارت شرطی و عمل مورد نظر برای اجرا در صورت صحیح بودن شرط را به شکل زیر مشخص می کنیم :
<عبارت شرطی> if
<عمل مورد نظر>
اگر حاصل عبارت شرطی مقابل if صحیح باشد عمل مشخص شده انجام می شود در غیر این صورت نادیده گرفته می شود. به مثال های زیر در این باره توجه نمایید :
>>> x = 0
>>> y = 5
>>> if x < y: # True
>>> print('yes')
yes
>>> if y < x: # False
>>> print('yes')
>>> if x: # False
>>> print('yes')
>>> if y: # True
>>> print('yes')
yes
>>> if x or y: # True
>>> print('yes')
yes
>>> if x and y: # False
>>> print('yes')
>>> if 'aul' in 'grault': # True
>>> print('yes')
yes
>>> if 'quux' in ['foo', 'bar', 'baz']: # False
>>> print('yes')
نکته : اگر در قبال درست بودن شرط نیاز باشد ما چندین عمل به جای یک عمل انجام دهیم این کار به سادگی امکان پذیرست، کافیست از قوانین تورفتگی در پایتون استفاده کنیم، در پایتون به جای استفاده از begin – end و یا براکت باز و بسته {}، برای مشخص کردن بازه دستورات مربوط به یک دسته از تورفتگی استفاده می شود به این شکل که تمام دستورات پشت سر هم با میزان تورفتگی یکسان در یک دسته قرار می گیرند مانند مثال زیر :
<عبارت شرطی> if
<دستور 1>
<دستور 2>
<دستور 3>
<دستور 4>
برای درک بهتر به مثال زیر توجه نمایید:
>>> if 'foo' in ['bar', 'baz', 'qux']:
>>> print('Expression was true')
>>> print('Executing statement in suite')
>>> print('...')
>>> print('Done.')
شرط if else
این عبارت شرطی تکامل یافته حالت قبلی می باشد، به این شکل که علاوه بر عبارت شرطی و مشخص نمودن عمل مربوط به درست بودن عبارت، عمل مربوط به درست نبودن عبارت شرطی را نیز مشخص می کند و مشخص می کند در صورت درست نبودن عبارت شرطی چه عملی انجام پذیرد :
:<عبارت شرطی> if
<عمل مورد نظر در صورت درست بودن شرط>
else
<عمل مورد نظر در صورت غیر درست بودن شرط>
در این نوع اگر عبارت شرطی درست باشد عمل مشخص شده زیر if اجرا می شود و اگر شرط غلط باشد عبارت مشخص شده زیر else اجرا می شود. به مثال های زیر توجه فرمایید :
>>> x = 20
>>> if x < 50:
>>> print('(first suite)')
>>> print('x is small')
>>> else:
>>> print('(second suite)')
>>> print('x is large')
(first suite)
x is small
>>> x = 120
>>> if x < 50:
>>> print('(first suite)')
>>> print('x is small')
>>> else:
>>> print('(second suite)')
>>> print('x is large')
(second suite)
x is large
Nested if یا شرط های تو در تو
این نوع استفاده از if هنگامی کاربرد دارد که بخواهیم شرایطی را در دل شرایط دیگر بررسی کنیم مثل اگر عدد بزرگتر از 50 است و بر 2 بخش پذیر است آنگاه پیغام مناسب چاپ شود. به مثال های زیر در این باره توجه کنید :
>>> if x > 50 :
>>> if (x % 2 ) == 0 :
>>> print('ok')
شرط If … Elif … Else
در برخی از مواقع شرط مورد نظر ما چند حالتی می باشد، به شکلی که ما چندین شرط داریم که ترتیب بررسی آن ها برای ما اهمیت دارد برای مثال می خواهیم نمرات دانش آموزان یک کلاس را که بین 0 تا 20 است به 3 دسته، ضعیف برای نمرات کمتر و برابر 10، متوسط برای نمرات بین 10 تا 15، و خوب برای نمرات 15 تا 20. این شرط به شکل زیر خواهد بود.
>>> if s <= 10 : print('ضعیف')
>>> elif (s > 10)and(s < 16) : print('متوسط')
>>> else : print('خوب')
متوسط
همانطور که در مثال فوق مشاهده می کنید، شرط اول را در مقابل if قرار می دهیم اگر شرط درست باشد عبارت زیر if اجرا می شود و به باقی شرط ها کاری ندارد، ولی اگر شرط مقابل if غلط باشد به سراق شرط بعدی یعنی اولین Elif بعد از خود می رود و اگر آن هم درست نباشد به سراق شرط بعدی در پایان اگر هیچ یک از if ها و Elif ها درست نباشند دستورات مقابل Else اجرا می شود.
بیان شرطی کوتاه شده (Conditional expression)
یکی از راحت ترین و کوتاه ترین انواع عبارت شرطی را می توان به صورت زیر استفاده نمود :
<دستور دوم> else <شرط> if <دستور اول>
عملکرد این عبارت شرطی ب این صورت است که ابتدا شرط را بررسی می کند در صورت درست بودن دستور اول و در صورت غلط بودن شرط دستور دوم را اجرا می کند. به مثال زیر در این باره توجه کنید.
‘yes’ if (‘qux’ in [‘foo’ , ‘bar’ ‘ ‘baz’]) else ‘no’
‘no’
عبارت شرطی زیر را در نظر بگیرید :
>>> if a > b:
>>> m = a
>>> else:
>>> m = b
فرم کوتاه شده عبارت فوق را می توان به شکل زیر نوشت :
>>> m = a if a > b else b
حال با چند مثال با این نوع شرط ها بیشتر آشنا می شویم :
>>> x = y = 40
>>> z = 1 + x if x > y else y + 2
>>> z
42
>>> z = (1 + x) if x > y else (y + 2)
>>> z
42
>>> x = y = 40
>>> z = 1 + (x if x > y else y) + 2
>>> z
43
دیدگاهتان را بنویسید