العامل الثلاثي في ​​بايثون - ماذا؟ كيف؟ لماذا؟

في عالم البرمجة ، تعتبر القدرة على تبسيط التعليمات البرمجية ذات قيمة لكل من قابلية قراءة الكود وكفاءته. أداة واحدة تحت تصرفك للقيام بذلك في بايثون هي المشغل الثلاثي.

يسمح لك عامل التشغيل الثلاثي Python (أو التعبير الشرطي) بتقييم العبارات بناءً على ما إذا كان شرط معين صحيحًا أم خطأ ، كل ذلك في سطر واحد من التعليمات البرمجية. يمكن أن تحل محل عبارة if-else متعددة الأسطر بشكل فعال مما يجعل شفرتك أكثر إحكاما.

بينما نستكشف إمكانات مشغلات Python الثلاثية ، ستجد أنها يمكن أن تكون مفيدة جدًا لتحسين برامجك. سواء كان ذلك لتبسيط منطق اتخاذ القرار أو تبسيط التعليمات البرمجية الخاصة بك ، فإن استخدام مشغلات Python الثلاثية بشكل فعال يمكن أن يجعل شفرتك أسهل في القراءة والفهم.

لذلك ، دعونا نلقي نظرة تحت الغطاء ونرى ما يدور حوله كل شيء!

العامل الثلاثي في ​​بايثون - ماذا؟  كيف؟  لماذا؟

جدول المحتويات

ما هو عامل بايثون الثلاثي؟

تقدم عوامل تشغيل Python Ternary طريقة موجزة لتقييم العبارة بناءً على ما إذا كان الشرط صحيحًا أم خطأ ، مما يجعل الكود مضغوطًا ويسهل قراءته. يسميها بعض الأشخاص أيضًا ��عبيرات شرطية أو عوامل شرطية.

النحو الأساسي

تم تقديم العامل الثلاثي في ​​Python 2.5 وله بنية بسيطة تتكون من ثلاثة معاملات:

#demonstrate python ternary operator syntax

result = value_if_true if condition else value_if_false

يتكون هذا النحو من ثلاثة أجزاء رئيسية:

  1. الشرط : هذا تعبير منطقي يتم تقييمه على أنه إما صواب أو خطأ ، أ

  2. value_if_true : القيمة التي يتم إرجاعها إذا كان التعبير المنطقي صحيحًا.

  3. value_if_false : القيمة التي يتم إرجاعها إذا كان التعبير المنطقي خطأ.

حالات الاستخدام الشائعة

غالبًا ما تُستخدم العوامل الثلاثية أو التعبيرات الشرطية لتبسيط عبارات if-else القصيرة في التعليمات البرمجية الخاصة بك. فيما يلي بعض الأمثلة لتوضيح كيفية تطبيق عامل تشغيل Python الثلاثي:

مثال 1: تعيين قيمة بناءً على شرط

 age = 25
 
category = "adult" if age >= 18 else "minor"

في هذا المثال ، يعين عامل التشغيل الثلاثي في ​​Python القيمة " بالغ " لفئة المتغير إذا كان العمر أكبر من أو يساوي 18 ، و " ثانوي " بخلاف ذلك.

بافتراض أننا اخترنا استخدام عبارة if-else بدلاً من عامل Python الثلاثي ، فسيبدو الأمر مشابهًا لما يلي:

age = 25

if age > 18:
   category = "Adult"
else:
   category = "Minor"

في هذه الحالة ، يمكننا أن نرى أن استخدام عامل تشغيل ثلاثي يجعل الشفرة أكثر إحكاما وسهولة في القراءة.

مثال 2: اختيار أصغر رقمين

a = 10
b = 15

smallest = a if a < b else b

هنا ، يساعدك العامل الشرطي الثلاثي على تحديد أصغر رقمين بإرجاع القيمة الأصغر بين a و b.

مثال 3: تعيين الحد الأدنى لقيمة متغيرين:

num1 = 10
num2 = 20

min_num = num1 if num1 < num2 else num2
print(min_num)

سيكون ناتج هذا المثال 10 ، حيث يقوم عامل التشغيل الثلاثي بتقييم الشرط وإرجاع القيمة الأصغر.

مثال 4: معرفة ما إذا كان الرقم زوجيًا أم فرديًا:

num = 5

result = "Even" if num % 2 == 0 else "Odd" 
print(result)

سيكون ناتج هذا المثال فرديًا ، حيث يتم تقييم الشرط إلى خطأ ، ويعيد العامل الثلاثي النتيجة المناسبة.

توضح هذه الأمثلة كيف يمكن لمشغل Python الثلاثي أن يجعل شفرتك أكثر إيجازًا وأسهل في القراءة. باستخدام بناء الجملة الأساسي وفهم حالات الاستخدام الشائعة ، يمكنك دمج عامل تشغيل ثلاثي بشكل فعال في كود Python الخاص بك.

في المزيد من التطبيقات العملية ، يمكنك استخدامه جنبًا إلى جنب مع حلقة لفحص وتقييم أو إجراء عمليات على البيانات.

لمزيد من الكفاءة في معالجة البيانات ، يمكنك مشاهدة هذا الفيديو حول كيفية التعامل مع البيانات المفقودة في Python مع الاستيفاء.

كيفية استخدام عامل بايثون الثلاثي

إن بناء جملة المشغل الثلاثي العادي if-else هو أحد الطرق العديدة التي يمكننا من خلالها تنفيذ عامل Python الثلاثي. يمكننا أيضًا تنفيذه باستخدام هياكل البيانات الشائعة مثل قواميس Python و tuples والقوائم.

لنلقِ نظرة على بعض هذه الطرق:

تعيين القاموس

يمكنك محاكاة عامل تشغيل ثلاثي Python باستخدام تعيين القاموس لتخزين النتائج لظروف مختلفة. يمكن أن يكون مفيدًا عندما يكون لديك مجموعة محدودة من الشروط والنتائج المقابلة.

فيما يلي مثال باستخدام تعيين القاموس للتحقق مما إذا كان الرقم زوجيًا أم فرديًا:

#Implement python ternary operator with dictionary mapping

number = 7
result = {True: "Even", False: "Odd"}

is_even = result[number % 2 == 0]

سيعيد البرنامج أعلاه " Odd " لأن التعبير المنطقي بين الأقواس يتم تقييمه إلى False.

باستخدام Tuples

مجموعات Python هي بنية بيانات منظمة وغير قابلة للتغيير يمكنك استخدامها لتنفيذ عوامل ثلاثية. بشكل أساسي ، يحتوي عامل التشغيل tuple ternary على بناء جملة:

(condition_is_false, condition_is_true)[condition]

يتم تقييم الشرط إما إلى True أو False والذي في Python يساوي الأعداد الصحيحة 1 و o على التوالي.

لذلك ، تُرجع tuple أي عنصر يطابق الفهرس الناتج. على سبيل المثال ، إذا تم تقييم الشرط إلى True وهو 1 ، فإن الكود يُرجع condition_is true .

وبخلاف ذلك ، يتم التقييم إلى False وهو 0 ، وترجع المجموعة condition_is_false . فيما يلي مثال أدناه:

#Implement ternary operator with tuples

c = False
result = ('a', 'b')[c]

سيقوم tuple بتخزين القيمة " a " في نتيجة المتغير حيث يتم تقييم الشرط إلى False. لا يحب معظم المطورين استخدام هذا التنسيق للمشغلين الثلاثي لأنه قد يكون مربكًا بعض الشيء ، مما يفسد الغرض.

وظائف لامدا

وظائف Lambda هي وظائف مجهولة من سطر واحد يمكنك استخدامها كبديل للمشغلين الثلاثي. إنها تسمح لك بإجراء عمليات حسابية بسيطة وإرجاع نتيجة بناءً على شرط معين.

فيما يلي مثال على استخدام دالة lambda للعثور على أقصى رقمين:

#implement python ternary operator with lambda functions

a, b = 10, 20
max_value = (lambda: a, lambda: b)[a < b]()

ترجع الدالة lambda a إذا تم تقييم الشرط إلى True . خلاف ذلك ، فإنه يعيد ب .

ما هو العامل الثلاثي المتداخلة؟

العامل الثلاثي المتداخل هو تعبير شرطي يحتوي على تعبيرين منطقيين أو أكثر. يمكنك إنشاء هذا عن طريق ربط شرطين منطقيين أو أكثر معًا للتحقق من شروط متعددة.

يمكننا استخدام هذه الأنواع من العوامل الثلاثية لنمذجة عبارات " elif " وكتل if-else المتداخلة.

لنلقِ نظرة على مثال لعامل Python الثلاثي المتداخل.

age = 21

#Normal elif statement
if age< 21:
   print('Child')
elif age< 25:
   print ('young adult')
else:
   print('Adult')

#elif statement as a ternary operator
print('Child') if age < 18 else print('Young adult') if age <21 else print ('Old Person')

#Output: 'Young Adult'

يمكنك إضافة أقواس إلى معامل Python الثلاثي إذا كنت تريد تقليد عبارة if-else المتداخلة. ومع ذلك ، فهذه ليست ممارسة جيدة لأن العامل الثلاثي يمكن أن يصبح طويلًا جدًا وغير قابل للقراءة.

في مثل هذه الحالات ، من الأفضل لك استخدام كتلة if-else القياسية في التعليمات البرمجية الخاصة بك.

ما هي مزايا عامل بايثون الثلاثي؟

هناك العديد من المزايا التي تحصل عليها من استخدام عامل Python الثلاثي في ​​التعليمات البرمجية الخاصة بك. بعض هذه المزايا تشمل:

قراءة الكود والإيجاز

يمكن أن يؤدي استخدام المعامل الثلاثي لبايثون إلى جعل شفرتك أكثر إيجازًا ، مما يسمح لك بكتابة تعبيرات شرطية في سطر واحد.

هذا مفيد بشكل خاص عند التعامل مع ظروف بسيطة ومباشرة. يمكن أن تكون الكود الخاص بك أكثر قابلية للقراءة وأسهل في الفهم ، لأنه يقلل من الحاجة إلى أسطر متعددة من عبارات if-else.

اعتبارات الأداء

على الرغم من أن المشغل الثلاثي يمكن أن يؤدي إلى رمز أكثر إحكاما ، إلا أن تأثيره على الأداء يكون ضئيلا عادة. تم تصميم مترجم Python لتحسين تنفيذ الكود ، مما يعني أن كلا من المشغل الثلاثي وعبارات if-else لها خصائص أداء متشابهة بشكل عام.

عند كتابة تعليمات برمجية بلغة Python ، أعط الأولوية لقابلية القراءة وقابلية الصيانة على الأداء ، إلا إذا كنت تعمل مع تطبيقات ذات أداء حرج.

تذكر أن المواقف المختلفة تتطلب أساليب مختلفة. في بعض الأحيان ، يكون استخدام المعامل الثلاثي مفيدًا ، بينما في حالات أخرى ، قد يكون التمسك بعبارات if-else التقليدية أكثر ملاءمة.

عيوب عامل بايثون الثلاثي

تعتبر العوامل الثلاثية رائعة في تبسيط التعليمات البرمجية الخاصة بك وجعلها مضغوطة. ومع ذلك ، فإن استخدامها قد يكون له بعض العيوب.

فيما يلي بعض هذه العيوب:

يمكن أن تصبح العوامل الثلاثية المتداخلة معقدة

في بعض الحالات ، قد يجعل المشغل الثلاثي الكود أقل قابلية للقراءة ، خاصة عند استخدام شروط معقدة أو متداخلة. في هذه الحالات ، قد يكون دمج عبارات if-else التقليدية أكثر ملاءمة للحفاظ على وضوح الكود.

هذا صحيح بشكل خاص عندما تحاول استبدال جملة if-else المتداخلة بعامل ثلاثي. نادرا ما ينتج عنه كود نظيف.

كل معامل هو تعبير

جميع المعاملات أو قيم الإرجاع في عامل تشغيل Python الثلاثي هي تعبيرات وليست عبارات. ستؤدي محاولة استخدام عبارة الإسناد داخل بناء جملة المشغل الثلاثي إلى خطأ في بناء الجملة.

يمكنك التحقق من مثال على ذلك في الكود أدناه.

'Adult' if True else x = 44

كما ترى أدناه ، ينتج عنه خطأ في بناء الجملة. في مثل هذه الحالات ، يجب عليك استخدام كتلة if-else بدلاً من عامل التشغيل الشرطي.

العامل الثلاثي في ​​بايثون - ماذا؟  كيف؟  لماذا؟

أفضل الممارسات والنصائح

عند استخدام عامل التشغيل الثلاثي في ​​Python ، هناك بعض أفضل الممارسات والنصائح لمساعدتك على كتابة تعليمات برمجية نظيفة وفعالة وقابلة للقراءة.

أولاً ، تأكد من أن تعبيرك الشرطي قصير ومختصر. قد تجعل الظروف الطويلة والمعقدة من الصعب فهم المنطق الكامن وراء العامل الثلاثي.

إذا وجدت نفسك تواجه حالة معقدة ، فقد يكون من الأفضل استخدام عبارة if-else العادية بدلاً من ذلك.

#demonstrate nested ternary operator
# Good example 
result = "positive" if number >= 0 else "negative" 


# Bad example 
result = (a + b if (x > 10 and y > 20) else c + d) if (z > 30 and p > 40) else ...

ثانيًا ، تجنب تداخل العديد من العوامل الثلاثية ، مما قد يؤدي إلى شفرة مربكة وغير قابلة للقراءة. كما هو الحال مع الشروط المعقدة ، ضع في اعتبارك استخدام عبارة if-else لمزيد من سهولة القراءة.

# Good example 

x = A if condition1 else B if condition2 else C 

# Bad example 
x = A if condition1 else (B if condition2 else (C if condition3 else ...)) 

أخيرًا ، ضع في اعتبارك حالات الاستخدام المناسبة للمشغل الثلاثي. إنه أكثر ملاءمة للتعيينات البسيطة أحادية السطر حيث يكون كل من الشرط والنتيجة سهلة الفهم.

إذا كانت شفرتك تتضمن منطقًا أكثر تعقيدًا أو حلقات أو مهام متعددة ، فمن الأفضل التمسك بعبارات if-else التقليدية.

أسئلة وأجوبة حول مشغلي Python Ternary

فيما يلي بعض الأسئلة التي يطرحها علينا المبرمجون الجدد عادةً حول العوامل الثلاثية:

كيف تستخدم العامل الثلاثي في ​​تعليمة العودة في بايثون؟

يمكنك استخدام معامل Python الثلاثي في ​​تعليمة إرجاع الدالة. كل ما عليك فعله هو إضافته إلى بيان الإرجاع.

هنا مثال:

#program to check cheese age

def is_legal(age):
  return 'legal' if age > 18 else 'Not legal'

هل المشغل الثلاثي أسرع من عبارة if-else في بايثون؟

لا ، كلاهما لهما خصائص أداء متشابهة. المشغل الثلاثي وعبارة if-else لهما تعقيد زمني O (1).

Leave a Comment

تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية

تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية

تعرف على تقنية تصور LuckyTemplates هذه حتى تتمكن من إنشاء قوالب الخلفية واستيرادها إلى تقارير LuckyTemplates الخاصة بك.

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

كيفية حفظ وتحميل ملف RDS في R.

كيفية حفظ وتحميل ملف RDS في R.

ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.

مقدمة لتصفية السياق في LuckyTemplates

مقدمة لتصفية السياق في LuckyTemplates

في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX ​​في توفير النتائج.

إعداد تقارير الأعمال باستخدام LuckyTemplates

إعداد تقارير الأعمال باستخدام LuckyTemplates

إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.