وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

عملگر شرطی سه تایی پایتون

0 6
زمان لازم برای مطالعه: 2 دقیقه


مزیت داشتن یک عملگر شرطی سه تایی این است که اجازه می دهد تا دستورات if/else کوتاه تری ارائه شود، که می تواند به راحتی در سایر بلوک های کد به صورت خطی گنجانده شود. پایتون هیچ تفاوتی با سایر زبان های برنامه نویسی ندارد زیرا دارای یک عملگر شرطی سه تایی است.

نحو به شرح زیر است:

>>> (expression1) if (condition) else (expression2)

همانطور که می بینید، این دستور if/else را به یک خط کوتاه می کند که معمولاً 4 خط بود:

if (condition):
   (expression1)
else
   (expression2)

برای مثال ملموس تر، مثال زیر را در نظر بگیرید:

عملگر سه تایی را می توان در بسیاری از موارد استفاده کرد، مانند اجرای شرطی یک عبارت، یا حتی تخصیص یک متغیر بر اساس روی یک شرط

from datetime import datetime

halloween = datetime(2022, 10, 31)
today = datetime.today()

print('Happy Halloween!') if today.date() == halloween.date() else print('Nothing to celebrate...')

اختصاص یک متغیر بر اساس روی شرط یک مورد استفاده رایج برای عملگر سه تایی است.

from datetime import datetime

new_years = datetime(1402, 1, 1)
today = datetime.today()

message = 'Happy New Year!' if today.date() == new_years.date() else 'Nothing to celebrate...'

در حالی که اینها نمونه های بسیار ساده ای هستند، اپراتور سه تایی می تواند یک ویژگی بسیار قدرتمند باشد.

یکی از مواردی که باید مراقب آن باشید ترتیب عملیات در بیان شما است. از آنجایی که عملگر سه تایی اجازه می دهد تا عبارات شما باشند روی همان خط به عنوان شرایط، می تواند به برخی از نتایج غیر منتظره منجر شود.

پیشنهاد می‌کنیم بخوانید:  راهنمای مجموعه ها در پایتون

مثلا:

>>> a = 1
>>> b = 4
>>> c = 10 + a if a > 5 else b

با نگاه کردن به این کد، ممکن است انتظار داشته باشید که نتیجه حاصل شود 14، اما در واقع برمی گردد 4. اولین عبارت با هم گروه بندی شده است، بنابراین پایتون آن را به صورت می بیند 10 + a، به جای فقط a همانطور که ممکن است انتظار داشته باشید. به همین دلیل، نتیجه این است 4. اگر می خواهید اپراتور سه تایی فقط برگردد 4 و سپس آن را به آن اضافه کنید 10برای گروه بندی عبارت از پرانتز استفاده کنید:

>>> a = 1
>>> b = 4
>>> c = 10 + (a if a > 5 else b)
>>> c
14

متاسفانه اونجا هستند برخی از محدودیت‌ها با این نحو، زیرا صرفاً یک عبارت if/else یک خطی نیست. از چند عبارت با استفاده از آن پشتیبانی نمی کند elif کلمه کلیدی. اگر شما نیاز به ارزیابی چند عبارت دارید، باید یک عملگر سه تایی دیگر را لانه کنید.

>>> a = 1
>>> b = 4
>>> c = 10 + (a if a > 5 else (b if b > 5 else 11))
>>> c
21

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-04 07:50:05

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید