الدرس 4

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

الوحدة 2: التحكم في التدفق وقت القراءة: 12 دقيقة

ما هي العوامل؟

العوامل هي رموز خاصة تقوم بعمليات على القيم والمتغيرات. بايثون تدعم أنواعاً مختلفة من العوامل لأغراض متعددة.

العوامل الحسابية

تُستخدم للحسابات الرياضية:

العامل الاسم مثال النتيجة
+ الجمع 5 + 3 8
- الطرح 5 - 3 2
* الضرب 5 * 3 15
/ القسمة 5 / 3 1.666...
// القسمة الصحيحة 5 // 3 1
% باقي القسمة 5 % 3 2
** الأس 5 ** 3 125
Python
# أمثلة حسابية
أ = 17
ب = 5

print(f"الجمع: {أ} + {ب} = {أ + ب}")        # 22
print(f"الطرح: {أ} - {ب} = {أ - ب}")        # 12
print(f"الضرب: {أ} * {ب} = {أ * ب}")        # 85
print(f"القسمة: {أ} / {ب} = {أ / ب}")       # 3.4
print(f"القسمة الصحيحة: {أ} // {ب} = {أ // ب}")  # 3
print(f"الباقي: {أ} % {ب} = {أ % ب}")       # 2
print(f"الأس: {أ} ** 2 = {أ ** 2}")         # 289
استخدام عملي لباقي القسمة

عامل باقي القسمة % مفيد لـ:

  • التحقق من أن الرقم زوجي: رقم % 2 == 0
  • الحصول على آخر رقم: رقم % 10
  • الالتفاف (مثل حساب الساعات)

عوامل المقارنة

تُستخدم لمقارنة القيم. ترجع True أو False:

العامل الاسم مثال النتيجة
== يساوي 5 == 5 True
!= لا يساوي 5 != 3 True
> أكبر من 5 > 3 True
< أصغر من 5 < 3 False
>= أكبر من أو يساوي 5 >= 5 True
<= أصغر من أو يساوي 5 <= 3 False
Python
# أمثلة المقارنة
س = 10
ص = 5

print(f"{س} == {ص}: {س == ص}")   # False
print(f"{س} != {ص}: {س != ص}")   # True
print(f"{س} > {ص}: {س > ص}")     # True
print(f"{س} < {ص}: {س < ص}")     # False
print(f"{س} >= 10: {س >= 10}")   # True
print(f"{س} <= 5: {س <= 5}")     # False

# مقارنة النصوص (ترتيب أبجدي)
print("apple" < "banana")  # True

العوامل المنطقية

تُستخدم لدمج الشروط:

العامل الوصف مثال النتيجة
and True إذا كان كلاهما صحيحاً True and False False
or True إذا كان أحدهما صحيحاً True or False True
not يعكس النتيجة not True False
Python
# أمثلة العوامل المنطقية
العمر = 25
لديه_رخصة = True

# and - كلا الشرطين يجب أن يكونا صحيحين
يستطيع_القيادة = العمر >= 18 and لديه_رخصة
print(f"يستطيع القيادة: {يستطيع_القيادة}")  # True

# or - شرط واحد على الأقل يجب أن يكون صحيحاً
عطلة_نهاية_الأسبوع = False
عطلة_رسمية = True
يوم_إجازة = عطلة_نهاية_الأسبوع or عطلة_رسمية
print(f"يوم إجازة: {يوم_إجازة}")  # True

# not - يعكس القيمة المنطقية
ممطر = False
اخرج = not ممطر
print(f"اخرج: {اخرج}")  # True

# مثال مدمج
الدرجة = 85
نجح = الدرجة >= 60 and not (الدرجة < 0 or الدرجة > 100)
print(f"نجاح صالح: {نجح}")  # True

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

تُستخدم لتعيين وتحديث القيم:

العامل مثال يعادل
= x = 5 تعيين 5 لـ x
+= x += 3 x = x + 3
-= x -= 3 x = x - 3
*= x *= 3 x = x * 3
/= x /= 3 x = x / 3
//= x //= 3 x = x // 3
%= x %= 3 x = x % 3
**= x **= 3 x = x ** 3
Python
# أمثلة عوامل التعيين
الدرجة = 100

الدرجة += 10   # الدرجة = 110
print(f"بعد += 10: {الدرجة}")

الدرجة -= 20   # الدرجة = 90
print(f"بعد -= 20: {الدرجة}")

الدرجة *= 2    # الدرجة = 180
print(f"بعد *= 2: {الدرجة}")

الدرجة //= 3   # الدرجة = 60
print(f"بعد //= 3: {الدرجة}")

# دمج النصوص مع +=
رسالة = "مرحباً"
رسالة += " بالعالم"
print(رسالة)  # "مرحباً بالعالم"

عوامل الهوية والعضوية

Python
# عوامل الهوية (is, is not)
# تتحقق مما إذا كان متغيران يشيران لنفس الكائن
أ = [1, 2, 3]
ب = [1, 2, 3]
ج = أ

print(أ == ب)      # True (نفس القيم)
print(أ is ب)      # False (كائنات مختلفة)
print(أ is ج)      # True (نفس الكائن)

# عوامل العضوية (in, not in)
# تتحقق مما إذا كانت قيمة موجودة في تسلسل
فواكه = ["تفاح", "موز", "كرز"]

print("تفاح" in فواكه)       # True
print("عنب" in فواكه)        # False
print("عنب" not in فواكه)    # True

# تعمل مع النصوص أيضاً
نص = "مرحباً بالعالم!"
print("عالم" in نص)         # True

أولوية العوامل

بايثون تتبع ترتيب العمليات الرياضي:

Python
# أولوية العوامل (من الأعلى للأدنى)
# 1. () الأقواس
# 2. ** الأس
# 3. *, /, //, % الضرب، القسمة
# 4. +, - الجمع، الطرح
# 5. ==, !=, >, <, >=, <= المقارنات
# 6. not النفي المنطقي
# 7. and و المنطقية
# 8. or أو المنطقية

# أمثلة
نتيجة = 2 + 3 * 4      # 14 (ليس 20)
نتيجة = (2 + 3) * 4    # 20 (الأقواس أولاً)

نتيجة = 2 ** 3 ** 2    # 512 (من اليمين لليسار)
نتيجة = (2 ** 3) ** 2  # 64

# مثال مدمج
س = 5
ص = 10
ع = 15

نتيجة = س + ص > ع or ص - س == 5 and ع > ص
# تُحسب كـ: (5 + 10 > 15) or ((10 - 5 == 5) and (15 > 10))
print(نتيجة)  # True
أفضل الممارسات

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

المقارنات المتسلسلة

بايثون تسمح بمقارنات متسلسلة أنيقة:

Python
# المقارنات المتسلسلة
العمر = 25

# بدلاً من هذا:
if العمر >= 18 and العمر <= 65:
    print("سن العمل")

# يمكنك كتابة:
if 18 <= العمر <= 65:
    print("سن العمل")

# المزيد من الأمثلة
س = 5
print(1 < س < 10)      # True
print(1 < س < 3)       # False
print(1 < س <= 5 < 10) # True

# فحص النطاق
الدرجة = 85
التقدير = "A" if 90 <= الدرجة <= 100 else \
          "B" if 80 <= الدرجة < 90 else \
          "C" if 70 <= الدرجة < 80 else \
          "D" if 60 <= الدرجة < 70 else "F"
print(f"التقدير: {التقدير}")  # B

تحدي: الآلة الحاسبة

أنشئ آلة حاسبة بسيطة تقوم بـ:

  1. أخذ رقمين
  2. تنفيذ جميع العمليات الحسابية
  3. إظهار أي رقم أكبر
  4. التحقق مما إذا كان الرقم الأول قابل للقسمة على الثاني
أظهر الحل
رقم1 = 20
رقم2 = 6

# العمليات الحسابية
print(f"=== الآلة الحاسبة: {رقم1} و {رقم2} ===")
print(f"الجمع: {رقم1 + رقم2}")
print(f"الطرح: {رقم1 - رقم2}")
print(f"الضرب: {رقم1 * رقم2}")
print(f"القسمة: {رقم1 / رقم2:.2f}")
print(f"القسمة الصحيحة: {رقم1 // رقم2}")
print(f"الباقي: {رقم1 % رقم2}")
print(f"الأس: {رقم1 ** رقم2}")

# المقارنة
if رقم1 > رقم2:
    print(f"\n{رقم1} أكبر من {رقم2}")
elif رقم1 < رقم2:
    print(f"\n{رقم2} أكبر من {رقم1}")
else:
    print(f"\n{رقم1} و {رقم2} متساويان")

# فحص القابلية للقسمة
قابل_للقسمة = رقم1 % رقم2 == 0
print(f"\n{رقم1} قابل للقسمة على {رقم2}: {قابل_للقسمة}")

النقاط الرئيسية

ملخص
  • الحسابية: +، -، *، /، //، %، **
  • المقارنة: ==، !=، >، <، >=، <=
  • المنطقية: and، or، not
  • التعيين: =، +=، -=، *=، إلخ
  • الهوية: is، is not
  • العضوية: in، not in
  • استخدم الأقواس لتوضيح أولوية العوامل
  • بايثون تدعم المقارنات المتسلسلة الأنيقة

في الدرس القادم، سنتعلم عن الجمل الشرطية لاتخاذ القرارات في برامجنا!