العوامل في بايثون: شرح Operators بالأمثلة | أساسيات بايثون 6

العوامل في بايثون Operators هي رموز أو كلمات تنفّذ عمليات على القيم، مثل الجمع باستخدام +، والمقارنة باستخدام ==، والتحقق من الشروط باستخدام and. في هذا الدرس السادس من أساسيات بايثون ستتعلم سبعة أنواع رئيسية من العوامل، مع أمثلة قصيرة توضّح وظيفة كل نوع والفرق بين الرموز المتشابهة.

ابدأ بالعوامل الحسابية والإسناد والمقارنة والمنطق؛ فهي الأكثر احتياجًا عند كتابة برامجك الأولى. ثم تعرّف إلى عوامل الهوية والعضوية، وخذ فكرة تمهيدية عن عوامل البت. ستتعلم أيضًا لماذا تعطي / و// نتيجتين مختلفتين، وكيف تؤثر أولوية العمليات في الناتج، ومتى تستخدم is بدل ==.

{alertInfo}الإجابة السريعة: العامل هو ما ينفّذ العملية؛ في 10 + 5 العامل هو + والرقمان هما طرفا العملية. لا تحتاج إلى حفظ جميع العوامل دفعة واحدة؛ افهم أمثلتها ثم جرّبها.

{getToc} $title={محتوى المقال}

ما معنى Operators في بايثون؟

العامل Operator هو رمز أو كلمة لها وظيفة في تعبير برمجي. مثلًا:

print(10 + 5)

الناتج:

15

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

أنواع العوامل في بايثون باختصار

النوعأمثلةوظيفته
حسابية+ - * / // % **إجراء الحسابات.
إسناد= += -= *=ربط الاسم بقيمة أو تحديثها.
مقارنة== != > < >= <=مقارنة قيمتين.
منطقيةand or notدمج الشروط أو عكس نتيجتها.
هويةis وis notاختبار ما إذا كان الطرفان الكائن نفسه.
عضويةin وnot inاختبار وجود عنصر.
بت& | ^ ~ << >>إجراء عمليات على البتات.

1. العوامل الحسابية Arithmetic Operators

تُستخدم للجمع والطرح والضرب والقسمة وحساب باقي القسمة والأس. يوضح الجدول النتائج عند استخدام أعداد صحيحة موجبة:

العاملالوظيفةمثالالناتج
+جمع10 + 515
-طرح10 - 55
*ضرب10 * 550
/قسمة عادية10 / 52.0
//قسمة أرضية13 // 43
%باقي القسمة13 % 41
**أس2 ** 38

مثال عملي على الحساب

x = 13
y = 4
print(x + y)   # 17
print(x / y)   # 3.25
print(x // y)  # 3
print(x % y)   # 1

انتبه للفرق: القسمة باستخدام / تعطي float عند قسمة الأعداد العادية، حتى إن كانت النتيجة 2.0. أما // فتحسب ناتج القسمة بالتقريب نحو السالب اللانهائي، وليس مجرد حذف الأرقام بعد الفاصلة. لذلك:

print(-13 // 4)  # -4
print(13 % 4)    # 1

ويمكنك تطبيق % في مشروع معرفة هل العدد زوجي أم فردي؛ فباقي القسمة على 2 يوضح إن كان العدد يقبل القسمة عليها دون باقٍ.

2. عوامل الإسناد Assignment

تستخدم = لإسناد قيمة إلى اسم، بينما تجمع صيغ مثل += بين العملية وتحديث المتغير. عبارة x += 3 تشبه x = x + 3 في الأمثلة العددية البسيطة، لكنهما ليستا متطابقتين في جميع حالات الكائنات القابلة للتعديل.

الرمزمثالالمعنى المبسط
=x = 5إسناد 5 إلى الاسم x.
+=x += 3أضف 3 وحدّث x.
-=x -= 3اطرح 3 وحدّث x.
*=x *= 3اضرب في 3 وحدّث x.
/=x /= 3اقسم على 3 وحدّث x.
points = 10
points += 5
print(points)  # 15
points *= 2
print(points)  # 30

3. عوامل المقارنة Comparison Operators

تسمح لك بمقارنة قيمتين. في الأمثلة المعتادة على الأرقام والنصوص تحصل على True أو False. انتبه: == للمقارنة، و= للإسناد.

العاملالوظيفةمثال
==يساوي5 == 5
!=لا يساوي5 != 3
>أكبر من10 > 5
<أصغر من3 < 8
>=أكبر من أو يساوي7 >= 7
<=أصغر من أو يساوي4 <= 9
age = 18
print(age >= 18)  # True
print(age < 18)   # False

ستستخدم هذه المقارنات عندما تتعلم الشروط if وelse في بايثون؛ أما هنا فالمهم فهم القيمة الناتجة عن كل مقارنة.

4. العوامل المنطقية Logical Operators

تساعدك على دمج شروط متعددة: and عندما تحتاج تحقق الشرطين، وor عندما يكفي أحدهما، وnot لعكس نتيجة التحقق.

age = 20
has_id = True
print(age >= 18 and has_id)  # True
print(age < 18 or has_id)   # True
print(not has_id)          # False

هل and وor تعيدان True أو False دائمًا؟

لا. عندما تكون المدخلات شروطًا منطقية مثل المثال السابق تبدو النتائج True أو False، لكن and وor تعيدان إحدى القيم نفسها عند استخدام قيم غير منطقية، وقد تتوقفان عن تقييم الطرف الثاني إذا حُسمت النتيجة. مثال:

username = ""
print(username or "guest")  # guest
print(0 and 10)             # 0

أما not فيُعيد قيمة منطقية فعلًا. هذا التفصيل ستحتاجه لاحقًا مع الشروط والقيم الفارغة.

5. عوامل الهوية Identity Operators

العاملان is وis not يختبران هوية الكائن، وليس مجرد تساوي القيم. لذلك قد تتساوى قائمتان بمحتواهما مع بقائهما كائنين مستقلين:

x = [1, 2, 3]
y = [1, 2, 3]
z = x
print(x == y)  # True
print(x is y)  # False
print(x is z)  # True

في استخدامك اليومي قارن القيم باستخدام ==، واستخدم is None عندما تريد التحقق من القيمة الخاصة None. للتفصيل راجع الفرق بين == وis في بايثون؛ فهذا المقال المتخصص يشرح مقارنة القيم وهوية الكائنات بعمق أكبر.

6. عوامل العضوية Membership Operators

تستخدم in وnot in لمعرفة وجود قيمة داخل نص أو قائمة أو غيرها من الحاويات المناسبة:

languages = ["Python", "JavaScript", "HTML"]
print("Python" in languages)  # True
print("PHP" not in languages)  # True

إذا استخدمت in مع قاموس dict فهي تختبر وجود المفتاح افتراضيًا، وليس وجود القيمة. سنفصّل التعامل مع القواميس في درسها المخصص.

7. عوامل البت Bitwise Operators

تجري هذه العوامل عمليات على التمثيل الثنائي للأعداد الصحيحة. يكفي في هذه المرحلة التعرف إلى رموزها؛ لا تحتاج إلى حفظ تطبيقاتها قبل إتقان الأنواع السابقة.

العاملالمعنى
&AND على مستوى البت
|OR على مستوى البت
^XOR
~عكس البتات
<<إزاحة البتات يسارًا
>>إزاحة البتات يمينًا
print(5 & 3)  # 1

أولوية العمليات: لماذا تختلف النتيجة؟

لا تُنفّذ بايثون جميع العوامل وفق ترتيب كتابتها فقط؛ فالضرب له أولوية على الجمع مثلًا. استخدم الأقواس عندما تريد تغيير ترتيب الحساب أو توضيح المقصود:

print(2 + 3 * 4)    # 14
print((2 + 3) * 4)  # 20

في التعبيرات المنطقية تكون أولوية not أعلى من and، وand أعلى من or. لا تحتاج إلى حفظ جدول الأسبقيات كاملًا الآن؛ الأقواس تجعل الشروط المركبة أكثر وضوحًا.

مثال عملي يجمع عدة أنواع من العوامل

نريد التأكد من أن اسم الطالب موجود في القائمة وأن درجته كافية للنجاح:

students = ["Ali", "Sara", "Omar"]
name = "Sara"
score = 85
is_student = name in students
passed = score >= 50
print(is_student and passed)  # True

استخدمنا in للعضوية، و>= للمقارنة، وand لدمج النتيجتين. هذا مثال تمهيدي؛ ستتعلم لاحقًا اتخاذ قرارات مختلفة باستخدام if وelse.

أخطاء شائعة عند تعلم العوامل

  • الخلط بين = و==: الأول إسناد، والثاني مقارنة.
  • اعتبار // حذفًا للكسور: مع الأعداد السالبة قد تحصل على نتيجة مختلفة بسبب التقريب نحو السالب اللانهائي.
  • استخدام is بدل == لمقارنة قائمتين: الأولى للهوية والثانية للقيم.
  • الاعتقاد أن and وor تعيدان قيمتين منطقيتين دائمًا: قد تعيدان إحدى القيم المستخدمة.
  • نسيان ترتيب الحساب: عند الشك، أضف الأقواس.

تمرين قصير قبل الانتقال للدرس التالي

توقع ناتج الكود التالي ثم شغّله، وحاول تغيير قيمة score لمعرفة تأثير ذلك:

score = 72
print(score >= 50 and score < 90)
print(score % 2 == 0)

الإجابة: True ثم True. المثال الأول يدمج مقارنتين، والثاني يجمع باقي القسمة مع المقارنة.

أسئلة شائعة عن العوامل في بايثون

ما الفرق بين / و// في بايثون؟

/ للقسمة العادية، و// للقسمة الأرضية التي تُقرّب الناتج نحو السالب اللانهائي؛ لذلك انتبه للأعداد السالبة.

ما الفرق بين = و==؟

= علامة إسناد لقيمة متغير، أما == فعامل مقارنة لتساوي القيم.

هل and وor تعيدان True وFalse دائمًا؟

لا. قد تعيدان أحد طرفَي العملية نفسه، بينما يُرجع not قيمة منطقية.

متى أستخدم is بدل ==؟

استخدم == لمقارنة القيم، وis عندما تريد التأكد أن الطرفين يشيران إلى الكائن نفسه؛ ومن الأمثلة الشائعة value is None.

ما الخطوة التالية في كورس أساسيات بايثون؟

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

المصادر الرسمية

الخلاصة

تعرفت في الدرس السادس إلى سبعة أنواع من العوامل في بايثون، وكيف تستخدم أهمها في الحساب والإسناد والمقارنة وكتابة الشروط. تذكّر الفرق بين = و==، وبين == وis، وبين / و//. لا تحفظ الرموز وحدها؛ غيّر القيم في الأمثلة وراقب النتائج لتفهم كل عملية.

{alertSuccess}القاعدة العملية: ابدأ بالعوامل الحسابية والإسناد والمقارنة والمنطق، ثم تعلّم الأنواع الأخرى حسب حاجتك.

إرسال تعليق

أحدث أقدم