التعبيرات الشرطية

4.7 التعبيرات الشرطية

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على

  • تحديد مكونات التعبير الشرطي.
  • إنشاء تعبير شرطي.

التعبيرات الشرطية

التعبير الشرطي (conditional expression) (المعروف أيضًا باسم "العامل الثلاثي") هو نسخة مبسطة ومكونة من سطر واحد من تعليمة if-else.

قالب التعبير الشرطي:

    expression_if_true if condition else expression_if_false

يُقيَّم التعبير الشرطي بالتحقق أولاً من الشرط. إذا كان condition صحيحاً، يُقيَّم expression_if_true، وتكون النتيجة هي القيمة الناتجة للتعبير الشرطي. وإلا، يُقيَّم expression_if_false، وتكون النتيجة هي القيمة الناتجة للتعبير الشرطي.

يمكن إسناد قيمة لمُتغيِّر باستخدام تعبير شرطي. مثال: يمكن إيجاد القيمة القصوى لعددين باستخدام max_num = y if x < y else x

ملاحظة: تتمتع التعبيرات الشرطية بأدنى أسبقية العوامل بين جميع عمليات بايثون.

نقطة تحقق

مثال: التحقق من الإصدار

مفاهيم تطبيقية

استخدام التعبيرات الشرطية

1.
ما نسخة التعبير الشرطي لتعليمة if-else التالية؟
if x%2 == 0:
  response = 'even'
else:
  response = 'odd'
  1. response = if x%2 == 0 "even" else "odd"
  2. response = "odd" if x%2 == 0 else "even"
  3. response = "even" if x%2 == 0 else "odd"
2.
بفرض أن x = 100 و offset = 10، فما هي قيمة result؟
result = x + offset if x < 100 else x - offset
  1. 90
  2. 100
  3. 110
3.
أي جزء من التعبير الشرطي غير صحيح؟
min_num = x if x < y else min_num = y
  1. min_num = x
  2. x < y
  3. min_num = y
4.
أي مما يلي هو نسخة محسّنة من تعليمة if-else التالية؟
if x < 50:
  result = True
else:
  result = False
  1. result = True if x < 50 else False
  2. result = x < 50
5.
ما هي القيم المحتملة لـ total؟
total = fee + 10 if hours > 12 else 2
  1. 10, 2
  2. fee + 10, 2
  3. fee + 10, fee + 2

جرّب بنفسك

قيم البينغ

اكتب برنامجًا يقرأ عددًا صحيحًا، ping، ويطبع ping_report، وهي سلسلة نصية تشير إلى ما إذا كان البينغ منخفضًا إلى متوسط أو مرتفعًا جدًا. قيم ping الأقل من 150 يكون تقرير البينغ الخاص بها "low to average". قيم ping التي تبلغ 150 فما فوق يكون تقرير البينغ الخاص بها "too high". استخدم تعبيرًا شرطيًا لإسناد ping_report.

مثال: إذا كان الإدخال هو 30، فإن الإخراج هو "Ping is low to average".