العوامل في بايثون | Python operators

 العوامل الموجوده في بايثون

عامل : تعني operator في اللغة الإنجليزية , و العامل عبارة عن رمز له معنى محدد في بايثون.
يمكننا تصنيف العوامل في بايثون إلى 7 مجموعات أساسية و هي:

  • Arithmetic Operators

  • Comparison Operators

  • Logical Operators

  • Bitwise Operators

  • Assignment Operators

  • Membership Operators

  • Identity Operators

 العوامل التي تستخدم في العمليات الحسابية (Arithmetic Operators) في بايثون

إسم العامل رمزه مثال شرح الكود
Assignment = a = b أعطي a قيمة b
Addition + a + b أضف قيمة b على قيمة a
Subtraction - a - b إطرح قيمة b من قيمة a
Unary plus + +a أضرب قيمة a بالعامل +
Unary minus - -a أضرب قيمة a بالعامل -
Multiplication * a * b أضرب قيمة a بقيمة b
Exponent ** a ** b ضاعف قيمة a بقيمة b
Division / a / b أقسم قيمة a على قيمة b
Floor Divide // a // b أقسم قيمة a على قيمة b و أرجع أقرب عدد صحيح للناتج لا يحتوي على فاصلة.
Modulo % a % b للحصول على آخر رقم يبقى عندما نقسم قيمة a على قيمة b

هنا وضعنا مثال لكل عامل موجود في الجدول

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

هنا مجموعه أمثلة لكل عامل من العوامل التي تستخدم في العمليات الحسابية في بايثون .
 

العامل = (Assignment Operator)

العامل = يستخدم لإعطاء قيمة للمتغير . Factor = used to assign a value to a variable.

مثال

Test.py
        a = 5   # 5 و أعطيناه القيمة a هنا قمنا بتعريف متغير إسمه
        b = a   # a و أعطيناه نفس قيمة المتغير b هنا قمنا بتعريف متغير إسمه

        print('a =', a)
        print('b =', b)
      

سنحصل على النتيجة التالية عند التشغيل.

a = 5
b = 5


العامل + (Addition Operator)

العامل + يستخدم لإضافة قيمة على قيمة, أي في عمليات الجمع . The + operator is used to add a value to a value, that is, in addition.

مثال

Test.py
        a = 3
        b = 4

        c = a + b   # c = 3 + 4 = 7

        print('c =', c)
      

سنحصل على النتيجة التالية عند التشغيل.

c = 7


العامل - (Subtraction Operator)

العامل - يستخدم لإنقاص قيمة من قيمة, أي في عمليات الطرح . Factor - used to reduce a value from a value, that is, in subtraction operations.

مثال

Test.py
        a = 3
        b = 4

        c = a - b   # c = 3 - 4 = -1

        print('c =', c)
      

سنحصل على النتيجة التالية عند التشغيل.

c = -1


العامل + (Unary-Plus Operator)

يعني ضرب القيمة بالعامل +.

مثال

Test.py
        # b لها في المتغير Unary-Plus قيمة أكبر من صفر, ثم وضعنا قيمة الـ a هنا وضعنا في المتغير
        a = 10
        b = +a       # b = +(10) = 10

        print('b =', b)

        # b لها في المتغير Unary-Plus قيمة أصغر من صفر, ثم وضعنا قيمة الـ a هنا وضعنا في المتغير
        a = -10
        b = +a       # b = +(-10) = -10

        print('b =', b)
      

سنحصل على النتيجة التالية عند التشغيل.

b = 10
b = -10


العامل - (Unary-Minus Operator)

يعني ضرب القيمة بالعامل -.

مثال

Test.py
        # b لها في المتغير Unary-Minus قيمة أكبر من صفر, ثم وضعنا قيمة الـ a هنا وضعنا في المتغير
        a = 10
        b = -a       # b = -(10) = -10

        print('b =', b)

        # b لها في المتغير Unary-Minus قيمة أصغر من صفر, ثم وضعنا قيمة الـ a هنا وضعنا في المتغير
        a = -10
        b = -a       # b = -(-10) = 10

        print('b =', b)
      

سنحصل على النتيجة التالية عند التشغيل.

b = -10
b = 10


العامل * (Multiplication Operator)

العامل * يستخدم لضرب قيمة بقيمة, أي في عمليات الضرب.

مثال

Test.py
        a = 6
        b = 5

        c = a * b     # c = 6 * 5 = 30

        print('c =', c)
      

سنحصل على النتيجة التالية عند التشغيل.

c = 30


العامل ** (Exponential Operator)

العامل ** يستخدم لمضاعفة قيمة بقيمة, أي لضرب قيمة بنفسها عدة مرات.

مثال

Test.py
        a = 2
        b = 5

        c = a ** b     # c = 2 ** 5 = 2 * 2 * 2 * 2 * 2 = 32

        print('c =', c)
      

سنحصل على النتيجة التالية عند التشغيل.

c = 32


العامل / (Division Operator)

العامل / يستخدم لقسمة قيمة على قيمة, أي في عمليات القسمة.

Operator / (Division Operator) Factor / is used to divide a value by a value, i.e. in division operations. Example

مثال

Test.py
        a = 8
        b = 5

        c = a / b     # c = 8 ÷ 5 = 1.6

        print('c =', c) 
      

سنحصل على النتيجة التالية عند التشغيل.

c = 1.6


العامل // (Floor Division Operator)

العامل // يستخدم لقسمة قيمة على قيمة و إزالة أي أرقام بعد الفاصلة.

// (Floor Division Operator) The // operator is used to divide a value by a value and remove any numbers after the comma.

مثال

Test.py
        a = 8
        b = 5

        c = a // b     # c = 8 ÷ 5 = 1.6     [ بعد أي رقم موجود بعض الفاصلة ]===>     c = 1

        print('c =', c) 
      

سنحصل على النتيجة التالية عند التشغيل.

c = 1


العامل % (Modulo Operator)

العامل % يقال له الـ Modulo و يسمى Remainder في الرياضيات و هو آخر رقم يبقى من عملية القسمة.
إذاً نستخدم الـ Modulo للحصول على آخر رقم يبقى من عملية القسمة.
و له فوائد كثيرة, فمثلاً يمكننا إستخدامه لمعرفة ما إذا كان الرقم مفرد أو مزدوج ( أي Even or Odd ) و هذا شرحناه بتفصيل في مادة الخوارزميات .  

في هذا المثال سنقوم بتخزين الرقم الذي يبقى من القسمة في المتغير c.

مثال

Test.py
        a = 8
        b = 5

        c = a % b;     # c = 8 % 5 = 3

        print('c =', c)
      

سنحصل على النتيجة التالية عند التشغيل.

c = 3

العوامل التي تستخدم للبحث في المصفوفات (Membership Operators) في بايثون 

إسم العامل رمزه مثال شرح الكود
In in a in arr هل قيمة المتغير a موجودة في المصفوفة arr؟
إذا كان الجواب نعم فإنها ترجع True
Not In not in a not in arr هل قيمة المتغير a غير موجودة في المصفوفة arr؟
إذا كان الجواب نعم فإنها ترجع True


أمثله في العوامل التي تستخدم للبحث في المصفوفات في بايثون

هنا وضعنا مثال لكل عامل موجود في الجدول من عوامل البحث في المصفوفات  .

العامل in (In Operator)

العامل in يستخدم لمعرفة ما إذا كانت المصفوفة تحتوي على قيمة معينة أم لا.

  • إذا كان يوجد عنصر في المصفوفة عنده نفس القيمة المراد البحث عنها, يرجع الجواب True.

  • إذا كان لا يوجد أي عنصر في المصفوفة عنده نفس القيمة المراد البحث عنها, يرجع الجواب False.


مثال

Test.py
        # هنا قمنا بتعريف مصفوفة تتألف من 5 عناصر عبارة عن أرقام صحيحة
        numbers = [1, 2, 3, 4, 5]

        # y و x هنا قمنا بتعريف متغيران
        x = 3
        y = 8

        # سيتم تنفيذ أمر الطباعة x تحتوي على قيمة المتغير numbers إذا كانت المصفوفة
        if x in numbers:
        print('x value exists in the array')

        # سيتم تنفيذ أمر الطباعة y تحتوي على قيمة المتغير numbers إذا كانت المصفوفة
        if y in numbers:
        print('y value exists in the array')
      

سنحصل على النتيجة التالية عند التشغيل.

x value exist in the array

نلاحظ أنه تم تنفيذ أمر الطباعة الموضوع في الشرط الأول فقط لأنه تم إيجاد عنصر في المصفوفة numbers عنده نفس قيمة المتغير x.

العامل not in (Not In Operator)

العامل not in يستخدم لمعرفة ما إذا كانت المصفوفة لا تحتوي على قيمة معينة أم لا.

  • إذا كان لا يوجد أي عنصر في المصفوفة عنده نفس القيمة المراد البحث عنها, يرجع الجواب True.

  • إذا كان يوجد أي عنصر في المصفوفة عنده نفس القيمة المراد البحث عنها, يرجع الجواب False.


مثال

Test.py
        # هنا قمنا بتعريف مصفوفة تتألف من 5 عناصر عبارة عن أرقام صحيحة
        numbers = [1, 2, 3, 4, 5]

        # y و x هنا قمنا بتعريف متغيران
        x = 3
        y = 8

        # سيتم تنفيذ أمر الطباعة x لا تحتوي على قيمة المتغير numbers إذا كانت المصفوفة
        if x not in numbers:
        print('x value not exists in the array')

        # سيتم تنفيذ أمر الطباعة y لا تحتوي على قيمة المتغير numbers إذا كانت المصفوفة
        if y not in numbers:
        print('y value not exists in the array')
      

سنحصل على النتيجة التالية عند التشغيل.

y value not exist in the array

نلاحظ أنه تم تنفيذ أمر الطباعة الموضوع في الشرط الثاني فقط لأنه لم يتم إيجاد عنصر في المصفوفة numbers عنده نفس قيمة المتغير y.

العوامل التي تستخدم لمعرفة ما إذا كان الكائنين يشيران لكائن واحد في الذاكرة أم لا (Identity Operators) في بايثون 

إسم العامل رمزه مثال شرح الكود
Is is a is b هل الكائن a و الكائن b يشيران إلى كائن واحد في الذاكرة؟
إذا كان الجواب نعم فإنها ترجع True
Is Not is not a is not b هل الكائن a و الكائن b لا يشيران إلى كائن واحد في الذاكرة؟
إذا كان الجواب نعم فإنها ترجع True

هنا وضعنا مثال لكل عامل موجود في الجدول

امثله في العوامل التي تستخدم لمعرفة ما إذا كان الكائنين يشيران لكائن واحد في الذاكرة أم لا في بايثون

طريقة معرفة عنوان المتغير أو الكائن في الذاكرة في بايثون

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

 

المثال الأول

Test.py
        # هنا قمنا بتعريف متغيران عندهم قيم مختلفة
        x = 3
        y = 7

        # هنا قمنا بطباعة عناوينهم في الذاكرة
        print('x address is:', id(x))
        print('y address is:', id(y))
      

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

x address is: 1537266768
y address is: 1537266832

نلاحظ أن عنوان المتغير x مختلف عن عنوان المتغير y و بالتالي هذا يعني أنه تم حجز مساحة خاصة لكل واحد منهما و أنهما يشيران لمكانين مختلفين في الذاكرة.


ملاحظة

في حال قمت بتعريف متغيران أو أكثر و أعطيتهم نفس القيمة, فإن مفسّر لغة بايثون سيحجز مكان واحد لهم و يضع فيه القيمة حتى يوّفر في استهلاك مساحة الذاكرة.

  

المثال الثاني

Test.py
        # هنا قمنا بتعريف متغيران عندهم قيم مختلفة
        x = 5
        y = 5

        # هنا قمنا بطباعة عناوينهم في الذاكرة
        print('x address is:', id(x))
        print('y address is:', id(y))
      

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

x address is: 1833030700
y address is: 1833030700

نلاحظ أن عنوان المتغير x هو نفسه عن عنوان المتغير y و بالتالي هذا يعني أنه تم حجز مساحة واحدة لكلا المتغيرين و أنهما يشيران إلى نفس المكان في الذاكرة.

العامل is (Is Operator)

العامل is يستخدم لمعرفة ما إذا كان الكائنين يشيران لكائن واحد في الذاكرة أم لا.

  • إذا كانا يشيران لنفس الكائن فإنه يرجع الجواب True.

  • إذا كانا لا يشيران لنفس الكائن فإنه يرجع الجواب False.


مثال

Test.py
        # هنا قمنا بتعريف مصفوفتين عندهما نفس الحجم و وضعنا فيهما نفس القيم
        A = [1, 2, 3]
        B = [1, 2, 3]

        # في الذاكرة B و A هنا قمنا بطباعة عنوان المصفوفتان
        print('A address is:', id(A))
        print('B address is:', id(B))

        # يشيران لكائن واحد في الذاكرة ( أي لعنوان واحد ) سيتم تنفيذ أمر الطباعة B و A إذا كان
        if A is B:
        print('A and B have the same ID')
      

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

A address is: 36662848
B address is: 36563624

نلاحظ أن عنوان المصفوفة A مختلف عن عنوان المصفوفة B و بالتالي إنهما لا يشيران لمكان واحد في الذاكرة.
لهذا السبب لم يتم تنفيذ أمر الطباعة الأخير الموضوع داخل الشرط و الذي كان سيتنفذ في حال كان A و B يشيران لنفس المصفوفة في الذاكرة.

العامل is not (Is Not Operator)

العامل is not يستخدم لمعرفة ما إذا كان الكائنين لا يشيران لكائن واحد في الذاكرة أم لا.

  • إذا كانا لا يشيران لنفس الكائن فإنه يرجع الجواب True.

  • إذا كانا يشيران لنفس الكائن فإنه يرجع الجواب False.


مثال

Test.py
        # هنا قمنا بتعريف مصفوفتين عندهما نفس الحجم و وضعنا فيهما نفس القيم
        A = [1, 2, 3]
        B = [1, 2, 3]

        # في الذاكرة B و A هنا قمنا بطباعة عنوان المصفوفتان
        print('A address is:', id(A))
        print('B address is:', id(B))

        # لا يشيران لكائن واحد في الذاكرة ( أي لعنوان واحد ) سيتم تنفيذ أمر الطباعة B و A إذا كان
        if A is not B:
        print('A and B have different IDs')
      

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.

A address is: 5992000
B address is: 5892776
A and B have different IDs

نلاحظ أن عنوان المصفوفة A مختلف عن عنوان المصفوفة B و بالتالي إنهما لا يشيران لمكان واحد في الذاكرة.
لهذا السبب تم تنفيذ أمر الطباعة الأخير الموضوع داخل الشرط.