اليوم سنكتشف معاً العوامل (Operators) – الأدوات السحرية التي تجعل بايثون تقوم بالحسابات، والمقارنات، والمنطق. العوامل هي الرموز التي تخبر بايثون ماذا تفعل بالقيم والمتغيرات. هل تريد جمع رقمين؟ مقارنة عمرين؟ التحقق من وجود عنصر في قائمة؟ كله بالعوامل المناسبة! 🛠️
🤔 ما هي العوامل (Operators)؟
بكل بساطة، العامل هو رمز خاص يُجري عملية معينة على قيمة واحدة أو أكثر (تُسمى المُعاملات operands). مثلاً في 10 + 5، الرمز + هو العامل، و 10 و 5 هما المُعاملان.
print(10 + 5) # 15بايثون تُقسم العوامل إلى 7 مجموعات رئيسية. دعنا نستعرضها واحدة تلو الأخرى، مع أمثلة عملية تثبت المعلومة في ذهنك.
🧮 1. العوامل الحسابية (Arithmetic Operators)
تستخدم مع القيم الرقمية لإجراء العمليات الرياضية الأساسية التي تعرفها من المدرسة.
العامل الاسم مثال الناتج +Addition (جمع) x + yمجموع العددين -Subtraction (طرح) x - yالفرق بينهما *Multiplication (ضرب) x * yحاصل الضرب /Division (قسمة) x / yخارج القسمة (يعطي عدد عشري) %Modulus (باقي القسمة) x % yباقي القسمة فقط **Exponentiation (أُس) x ** yx مرفوعة للقوة y //Floor division (قسمة صحيحة) x // yخارج القسمة بدون كسور
تستخدم مع القيم الرقمية لإجراء العمليات الرياضية الأساسية التي تعرفها من المدرسة.
| العامل | الاسم | مثال | الناتج |
|---|---|---|---|
+ | Addition (جمع) | x + y | مجموع العددين |
- | Subtraction (طرح) | x - y | الفرق بينهما |
* | Multiplication (ضرب) | x * y | حاصل الضرب |
/ | Division (قسمة) | x / y | خارج القسمة (يعطي عدد عشري) |
% | Modulus (باقي القسمة) | x % y | باقي القسمة فقط |
** | Exponentiation (أُس) | x ** y | x مرفوعة للقوة y |
// | Floor division (قسمة صحيحة) | x // y | خارج القسمة بدون كسور |
جرب بنفسك:
x = 13y = 4
print(x + y) # 17print(x - y) # 9print(x * y) # 52print(x / y) # 3.25print(x % y) # 1 (13 - 12 = 1)print(x ** y) # 28561 (13^4)print(x // y) # 3 (القسمة الصحيحة)
x = 13y = 4print(x + y) # 17print(x - y) # 9print(x * y) # 52print(x / y) # 3.25print(x % y) # 1 (13 - 12 = 1)print(x ** y) # 28561 (13^4)print(x // y) # 3 (القسمة الصحيحة)
📥 2. عوامل الإسناد (Assignment Operators)
تستخدم لإسناد قيم للمتغيرات، وغالباً مع اختصار العملية الحسابية.
العامل مثال يكافئ =x = 5x = 5+=x += 3x = x + 3-=x -= 3x = x - 3*=x *= 3x = x * 3/=x /= 3x = x / 3%=x %= 3x = x % 3//=x //= 3x = x // 3**=x **= 3x = x ** 3&=x &= 3x = x & 3|=x |= 3x = x | 3^=x ^= 3x = x ^ 3>>=x >>= 3x = x >> 3<<=x <<= 3x = x << 3
تستخدم لإسناد قيم للمتغيرات، وغالباً مع اختصار العملية الحسابية.
| العامل | مثال | يكافئ |
|---|---|---|
= | x = 5 | x = 5 |
+= | 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 |
&= | 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 |
مثال:
⚖️ 3. عوامل المقارنة (Comparison Operators)
تقارن بين قيمتين وتُعيد قيمة منطقية: True أو False.
العامل الاسم مثال (x=5, y=3) ==Equal (يساوي) x == y → False!=Not equal (لا يساوي) x != y → True>Greater than (أكبر من) x > y → True<Less than (أصغر من) x < y → False>=Greater than or equal x >= 5 → True<=Less than or equal x <= 4 → False
تقارن بين قيمتين وتُعيد قيمة منطقية: True أو False.
| العامل | الاسم | مثال (x=5, y=3) |
|---|---|---|
== | Equal (يساوي) | x == y → False |
!= | Not equal (لا يساوي) | x != y → True |
> | Greater than (أكبر من) | x > y → True |
< | Less than (أصغر من) | x < y → False |
>= | Greater than or equal | x >= 5 → True |
<= | Less than or equal | x <= 4 → False |
مثال:
a = 10b = 20print(a == b) # Falseprint(a < b) # Trueprint(a != b) # True
a = 10b = 20print(a == b) # Falseprint(a < b) # Trueprint(a != b) # True
🧠 4. العوامل المنطقية (Logical Operators)
تستخدم لدمج الجمل الشرطية.
العامل الوصف مثال andيعيد True فقط إذا كان كلا الشرطين True x < 5 and x < 10orيعيد True إذا كان أحد الشرطين True x < 5 or x < 4notيعكس النتيجة (True تصير False والعكس) not(x < 5)
تستخدم لدمج الجمل الشرطية.
| العامل | الوصف | مثال |
|---|---|---|
and | يعيد True فقط إذا كان كلا الشرطين True | x < 5 and x < 10 |
or | يعيد True إذا كان أحد الشرطين True | x < 5 or x < 4 |
not | يعكس النتيجة (True تصير False والعكس) | not(x < 5) |
مثال:
age = 25print(age > 18 and age < 30) # True (بين 18 و 30)print(age > 30 or age < 20) # False (لا هذا ولا ذاك)print(not(age > 18)) # False (عكس True)
age = 25print(age > 18 and age < 30) # True (بين 18 و 30)print(age > 30 or age < 20) # False (لا هذا ولا ذاك)print(not(age > 18)) # False (عكس True)
🪪 5. عوامل الهوية (Identity Operators)
تقارن ما إذا كان المتغيران يشيران إلى نفس الكائن في الذاكرة، وليس فقط تساوي القيم.
العامل الوصف مثال isTrue إذا كانا نفس الكائن x is yis notTrue إذا لم يكونا نفس الكائن x is not y
تقارن ما إذا كان المتغيران يشيران إلى نفس الكائن في الذاكرة، وليس فقط تساوي القيم.
| العامل | الوصف | مثال |
|---|---|---|
is | True إذا كانا نفس الكائن | x is y |
is not | True إذا لم يكونا نفس الكائن | x is not y |
مثال:
x = [1, 2, 3]y = [1, 2, 3]z = x
print(x == y) # True (القيم متطابقة)print(x is y) # False (كائنان مختلفان في الذاكرة)print(x is z) # True (نفس الكائن)
x = [1, 2, 3]y = [1, 2, 3]z = xprint(x == y) # True (القيم متطابقة)print(x is y) # False (كائنان مختلفان في الذاكرة)print(x is z) # True (نفس الكائن)
🔍 6. عوامل العضوية (Membership Operators)
تختبر ما إذا كانت قيمة معينة موجودة ضمن تسلسل (مثل قائمة، نص، tuple...).
العامل الوصف مثال inTrue إذا وُجدت القيمة x in ynot inTrue إذا لم توجد القيمة x not in y
تختبر ما إذا كانت قيمة معينة موجودة ضمن تسلسل (مثل قائمة، نص، tuple...).
| العامل | الوصف | مثال |
|---|---|---|
in | True إذا وُجدت القيمة | x in y |
not in | True إذا لم توجد القيمة | x not in y |
مثال:
fruits = ["apple", "banana", "cherry"]print("banana" in fruits) # Trueprint("orange" not in fruits) # True
fruits = ["apple", "banana", "cherry"]print("banana" in fruits) # Trueprint("orange" not in fruits) # True
🤖 7. عوامل البت (Bitwise Operators)
تتعامل مع الأعداد الثنائية (بتات). للمستويات المتقدمة، لكن وجودها في جعبتك يزيد من قوتك.
العامل الاسم الوصف &AND بت 1 إذا كلا البتين 1 |OR بت 1 إذا أحد البتين 1 ^XOR بت 1 إذا واحد فقط 1 ~NOT يعكس البتات <<Left shift إزاحة لليسار (ضرب في 2) >>Right shift إزاحة لليمين (قسمة على 2)
تتعامل مع الأعداد الثنائية (بتات). للمستويات المتقدمة، لكن وجودها في جعبتك يزيد من قوتك.
| العامل | الاسم | الوصف |
|---|---|---|
& | AND | بت 1 إذا كلا البتين 1 |
| | OR | بت 1 إذا أحد البتين 1 |
^ | XOR | بت 1 إذا واحد فقط 1 |
~ | NOT | يعكس البتات |
<< | Left shift | إزاحة لليسار (ضرب في 2) |
>> | Right shift | إزاحة لليمين (قسمة على 2) |
مثال سريع:
print(5 & 3) # 1 (لأن 101 & 011 = 001)print(5 | 3) # 7 (101 | 011 = 111)print(5 << 1) # 10 (إزاحة لليسار)
لا تقلق إن بدت غامضة الآن، المهم معرفة أنها موجودة عند الحاجة إلى العمل على مستوى البتات (مثل التشفير أو الأنظمة المدمجة).
print(5 & 3) # 1 (لأن 101 & 011 = 001)print(5 | 3) # 7 (101 | 011 = 111)print(5 << 1) # 10 (إزاحة لليسار)
لا تقلق إن بدت غامضة الآن، المهم معرفة أنها موجودة عند الحاجة إلى العمل على مستوى البتات (مثل التشفير أو الأنظمة المدمجة).
🧪 جرّب كل شيء دفعة واحدة
انسخ الكود التالي في محرر بايثون العرب وشاهد السحر بنفسك:
x = 10y = 3# Arithmeticprint("Arithmetic:")print(x + y, x - y, x * y, x / y, x % y, x ** y, x // y)# Comparisonprint("Comparison:")print(x == y, x != y, x > y, x < y)# Logicalprint("Logical:")print(x > 5 and y < 5, x > 10 or y < 5, not(x > 5))# Assignmentz = 5z += 3print("Assignment z += 3:", z)# Membershipprint("Membership:")nums = [1, 2, 3]print(2 in nums, 5 not in nums)
🎓 خلاصة الدرس السادس
العوامل هي أدوات العمل اليومية لأي مبرمج بايثون. اليوم تعلمنا:
- 🧮 العوامل الحسابية: العمليات الرياضية من جمع وطرح وضرب وقسمة.
- 📥 عوامل الإسناد: اختصارات ذكية لتعديل قيم المتغيرات.
- ⚖️ عوامل المقارنة: وسيلتك لاتخاذ القرارات (
TrueأوFalse). - 🧠 العوامل المنطقية: لدمج وعكس الشروط.
- 🪪 عوامل الهوية: هل الكائنان نفس الشيء في الذاكرة؟
- 🔍 عوامل العضوية: هل العنصر موجود داخل التسلسل؟
- 🤖 عوامل البت: التعامل مع الأعداد على المستوى الثنائي.
