مرحباً بك في الدرس السادس من سلسلة أساسيات بايثون على موقع بايثون العرب. في الدرس السابق تعرفنا على المتغيرات في بايثون وكيف نخزن القيم داخل أسماء واضحة.
في هذا الدرس سنتعلم موضوعاً ستستخدمه تقريباً في كل برنامج تكتبه: عمليات بايثون Operators. هذه العمليات هي الرموز والكلمات التي تجعل بايثون تنفذ الحسابات، تقارن بين القيم، تتحقق من الشروط، وتتعامل مع النصوص والقوائم بطريقة عملية.
{alertInfo} قبل أن تبدأ، جرّب الأمثلة مباشرة على محرر بايثون العرب من هنا: محرر بايثون أون لاين
ما معنى Operators في بايثون؟
كلمة Operators تعني العوامل أو العمليات. وهي رموز أو كلمات خاصة تستخدم لتنفيذ عملية على قيمة واحدة أو أكثر.
مثلاً في الكود التالي:
print(10 + 5)
الرمز + هو العامل Operator، والرقمان 10 و 5 هما القيم التي تتم عليها العملية.
والناتج سيكون:
15
أنواع العمليات في بايثون
في بايثون توجد عدة أنواع من العوامل، وأهمها للمبتدئين:
- العوامل الحسابية: مثل الجمع والطرح والضرب والقسمة.
- عوامل الإسناد: لتخزين أو تحديث قيمة داخل متغير.
- عوامل المقارنة: للمقارنة بين قيمتين وإرجاع True أو False.
- العوامل المنطقية: لربط أكثر من شرط معاً.
- عوامل الهوية: لمعرفة هل متغيران يشيران إلى نفس الكائن أم لا.
- عوامل العضوية: لمعرفة هل عنصر موجود داخل قائمة أو نص.
1. العوامل الحسابية Arithmetic Operators
العوامل الحسابية تستخدم لإجراء العمليات الرياضية داخل بايثون، مثل الجمع والطرح والضرب والقسمة.
| العامل | المعنى | مثال | الناتج |
|---|---|---|---|
+ |
جمع | 10 + 5 |
15 |
- |
طرح | 10 - 5 |
5 |
* |
ضرب | 10 * 5 |
50 |
/ |
قسمة عادية | 10 / 5 |
2.0 |
// |
قسمة صحيحة | 13 // 4 |
3 |
% |
باقي القسمة | 13 % 4 |
1 |
** |
الأس | 2 ** 3 |
8 |
مثال عملي على العوامل الحسابية
x = 13
y = 4
print(x + y) # 17
print(x - y) # 9
print(x * y) # 52
print(x / y) # 3.25
print(x % y) # 1
print(x ** y) # 28561
print(x // y) # 3
{alertInfo} لاحظ أن القسمة باستخدام / تعطي غالباً عدداً عشرياً، حتى لو كان الناتج بدون كسور مثل 10 / 5 يساوي 2.0.
2. عوامل الإسناد Assignment Operators
عوامل الإسناد تستخدم لإعطاء قيمة لمتغير أو تحديث قيمة موجودة. أبسط عامل إسناد هو =.
score = 10
هذا يعني: خزّن القيمة 10 داخل المتغير score.
| العامل | مثال | يكافئ |
|---|---|---|
= |
x = 5 |
إسناد قيمة |
+= |
x += 3 |
x = x + 3 |
-= |
x -= 3 |
x = x - 3 |
*= |
x *= 3 |
x = x * 3 |
/= |
x /= 3 |
x = x / 3 |
مثال عملي على عوامل الإسناد
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
{alertWarning} انتبه جيداً: العامل = يستخدم للإسناد، أما العامل == فيستخدم للمقارنة.
4. العوامل المنطقية Logical Operators
العوامل المنطقية تستخدم عندما يكون عندك أكثر من شرط وتريد ربطها معاً.
| العامل | المعنى | متى يرجع True؟ |
|---|---|---|
and |
و | إذا كانت كل الشروط صحيحة |
or |
أو | إذا كان شرط واحد على الأقل صحيحاً |
not |
عكس النتيجة | يحوّل True إلى False والعكس |
مثال على 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
هذه العوامل مهمة جداً عند كتابة جمل الشرط if. وسنستخدمها كثيراً في الدروس القادمة.
5. عوامل الهوية Identity Operators
عوامل الهوية لا تسأل: هل القيمتان متساويتان فقط؟ بل تسأل: هل المتغيران يشيران إلى نفس الكائن في الذاكرة؟
| العامل | المعنى |
|---|---|
is |
هل هما نفس الكائن؟ |
is not |
هل ليسا نفس الكائن؟ |
مثال على 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 نفس الكائن
{alertInfo} في أغلب الحالات اليومية ستستخدم == للمقارنة بين القيم. أما is فغالباً يستخدم مع None أو عند فهم موضوع الكائنات والذاكرة.
6. عوامل العضوية Membership Operators
عوامل العضوية تستخدم لمعرفة هل عنصر معين موجود داخل نص أو قائمة أو Tuple أو Set.
| العامل | المعنى |
|---|---|
in |
هل العنصر موجود؟ |
not in |
هل العنصر غير موجود؟ |
مثال على in و not in
languages = ["Python", "JavaScript", "HTML"]
print("Python" in languages) # True
print("PHP" not in languages) # True
وهذا مفيد جداً عندما تريد التحقق من وجود عنصر قبل استخدامه داخل البرنامج.
7. عوامل البت Bitwise Operators
عوامل البت تستخدم للتعامل مع الأرقام على مستوى النظام الثنائي Binary. وهي ليست ضرورية جداً في بداية تعلمك، لكنها موجودة في بايثون وقد تحتاجها لاحقاً في بعض المجالات المتقدمة.
| العامل | الاسم |
|---|---|
& |
AND على مستوى البت |
| |
OR على مستوى البت |
^ |
XOR |
~ |
NOT |
<< |
إزاحة لليسار |
>> |
إزاحة لليمين |
{alertInfo} كمبتدئ، لا تقلق كثيراً من عوامل البت الآن. ركز أولاً على العوامل الحسابية، المقارنة، المنطقية، الإسناد، والعضوية.
مثال شامل يجمع أكثر من نوع من العمليات
لنفترض أننا نريد التحقق هل الطالب ناجح أم لا بناءً على الدرجة، وهل اسمه موجود في قائمة الطلاب.
students = ["Ali", "Sara", "Omar"]
name = "Sara"
score = 85
is_student = name in students
passed = score >= 50
print(is_student and passed) # True
في هذا المثال استخدمنا:
inللتحقق من وجود الاسم داخل القائمة.>=لمعرفة هل الدرجة كافية للنجاح.andللتأكد أن الشرطين صحيحان معاً.
أخطاء شائعة عند استخدام العمليات في بايثون
1. استخدام = بدل ==
من أشهر أخطاء المبتدئين الخلط بين الإسناد والمقارنة.
x = 5
# صحيح للمقارنة
print(x == 5)
2. نسيان أن النصوص تحتاج علامات اقتباس
# خطأ
# print(Python)
# صحيح
print("Python")
3. توقع أن / تعطي عدداً صحيحاً دائماً
في بايثون، القسمة العادية / تعطي عدداً عشرياً غالباً. إذا كنت تريد قسمة صحيحة استخدم //.
print(10 / 3) # 3.3333333333333335
print(10 // 3) # 3
ملخص الدرس
في هذا الدرس من أساسيات بايثون تعلمنا معنى Operators، وكيف نستخدم العمليات المختلفة داخل برامجنا.
- العوامل الحسابية تستخدم للجمع والطرح والضرب والقسمة.
- عوامل الإسناد تستخدم لتخزين وتحديث القيم داخل المتغيرات.
- عوامل المقارنة ترجع دائماً
TrueأوFalse. - العوامل المنطقية تربط أكثر من شرط معاً.
- عوامل الهوية تتحقق هل متغيران يشيران إلى نفس الكائن.
- عوامل العضوية تتحقق من وجود عنصر داخل قائمة أو نص.
{alertSuccess} أفضل طريقة لتثبيت هذا الدرس هي أن تفتح محرر بايثون العرب وتكتب كل مثال بيدك، ثم غيّر الأرقام والقيم وشاهد كيف يتغير الناتج.