بايثون3 مِن مدارس w3-14Python Operators
اقتبس من ابراهيم حمادة في 29 ديسمبر، 2020, 4:26 ممشغلات بايثون, Python Operators
مشغلات أو عوامل(Operators) بايثون
تُستخدم العوامل لإجراء عمليات على المتغيرات والقيم.
يُقَسِّم Python العوامل إذا المجموعات التالية:
• العمليات الحسابية
• عوامل الإسناد
• عوامل المقارنة
• العوامل المنطقية
• عوامل التأكد مِن الهوية
• مشغلي أو عوامل معرفةْ العضوية
• معاملات البت(Bitwise operators)معاملات بايثون الحسابية
تُستخدم العوامل الحسابية مع القيم الرقمية لإجراء عمليات حسابية شائعة:+
الجمع(Addition)
x + y
مثال
x = 5
y = 3print(x + y)
ستكون النتيجة:
8
Try it » مِن ملف oper_add.py-
الطرح(Subtraction)
x - y
مثال
x = 5
y = 3print(x - y)
ستكون النتيجة:
2
Try it » مِن ملف oper_sub.py*
الضرب(Multiplication)
x * y
مثال
x = 5
y = 3print(x * y)
ستكون النتيجة:
15
Try it » مِن ملف oper_mult.py/
القِسمة(Division)
x / y
مثال
x = 12
y = 3print(x / y)
ستكون النتيجة:
4
Try it » مِن ملف oper_div.py%
باقي القِسمة(Modulus)
x % y
مثال
x = 5
y = 2print(x % y)
ستكون النتيجة:
1
Try it » مِن ملف oper_mod.py**
الأُسية(Exponentiation)
x ** y
مثال
x = 2
y = 5print(x ** y) #same as 2*2*2*2*2
ستكون النتيجة:
32
Try it » مِن ملف oper_exp.py//
ناتج القِسمة بمعزل عن الباقي(Floor division)
x // y
مثال
x = 15
y = 2print(x // y)
#the floor division // rounds the result down to the nearest whole number
ستكون النتيجة:
7
Try it » مِن ملف oper_floordiv.pyعوامل الإسناد في بايثون(Assignment Operators)
تُستخدم عوامل الإسناد لتعيين أو إعطاء قيم للمتغيرات:=
x = 5
مثال
x = 5print(x)
ستكون النتيجة:
5
Try it » مِن ملف oper_ass1.py+=
x += 3
هي تُعادِل تماما :
x = x + 3
مثال
x = 5x += 3
print(x)
ستكون النتيجة:
8
Try it » مِن ملف oper_ass2.py-=
x -= 3
هي تُعادِل تماما:
x = x - 3
مثال
x = 5x -= 3
print(x)
ستكون النتيجة:
2
Try it » مِن ملف oper_ass3.py*=
x *= 3
هي تُعادِل تماما:
x = x * 3
مثال
x = 5x *= 3
print(x)
ستكون النتيجة:
15
Try it » مِن ملف oper_ass4.py/=
x /= 3
هي تُعادِل تماما:
x = x / 3
مثال
x = 5x /= 3
print(x)
ستكون النتيجة:
1.6666666666666667
Try it » مِن ملف oper_ass5.py%=
x %= 3
هي تُعادِل تماما:
x = x % 3
مثال
x = 5x%=3
print(x)
ستكون النتيجة:
2
Try it » مِن ملف oper_ass6.py//=
x //= 3
هي تُعادِل تماما:
x = x // 3
مثال
x = 5x//=3
print(x)
ستكون النتيجة:
1
Try it » مِن ملف oper_ass7.py**=
x **= 3
هي تُعادِل تماما:
x = x ** 3
مثال
x = 5x **= 3
print(x)
ستكون النتيجة:
125
Try it » مِ ملف oper_ass8.py&=
x &= 3
هي تُعادِل تماما:
x = x & 3
مثال
x = 5x &= 3
print(x)
ستكون النتيجة:
1
Try it » مِن ملف oper_ass9.py|=
x |= 3
هي تُعادِل تماما:
x = x | 3
مثال
x = 5x |= 3
print(x)
ستكون النتيجة:
7
Try it » مِن ملف oper_ass10.py^=
x ^= 3
هي تُعادِل تماما:
x = x ^ 3
مثال
x = 5x ^= 3
print(x)
ستكون النتيجة:
6
Try it » مِن ملف oper_ass11.py>>=
x >>= 3
هي تُعادِل تماما:
x = x >> 3
مثال
x = 5x >>= 3
print(x)
ستكون النتيجة:
0
Try it » مِن ملف oper_ass12.py<<=
x <<= 3
هي تُعادِل تماما:
x = x << 3
مثال
x = 5x <<= 3
print(x)
ستكون النتيجة:
40
Try it » مِن ملف oper_ass13.py
ملاحظة: عوامل ال Bitwise هذه التي سبقت, مثل &, |, ^ و غيرها يمكن تجاوزها خصوصا لمن ليس لديه فكرة عن الأرقام الثنائية أو binary numbers.عوامل المقارنة في بايثون
يتم استخدام عوامل المقارنة(Comparison operators ) لمقارنةْ قيمتين:==
متساوية(Equal)
x == y
مثال
x = 5
y = 3print(x == y)
# returns False because 5 is not equal to 3
ستكون النتيجة:
False
Try it » مِن ملف oper_compare1.py!=
لا تساوي(Not equal)
x != y
مثال
x = 5
y = 3print(x != y)
# returns True because 5 is not equal to 3
ستكون النتيجة:
True
Try it » مِن ملف oper_compare2.py>
أكبر من(Greater than)
x > y
مثال
x = 5
y = 3print(x > y)
# returns True because 5 is greater than 3
ستكون النتيجة:
True
Try it » مِن ملف oper_compare4.py<
أقل من(Less than)
x < y
مثال
x = 5
y = 3print(x < y)
# returns False because 5 is not less than 3
ستكون النتيجة:
False
Try it » مِن ملف oper_compare5.py>=
أكبر من أو يساوي(Greater than or equal to)
x >= y
مثال
x = 5
y = 3print(x >= y)
# returns True because five is greater, or equal, to 3
ستكون النتيجة:
True
Try it » مِن ملف oper_compare6.py<=
أقل من أو يساوي(Less than or equal to)
x <= y
مثال
x = 5
y = 3print(x <= y)
# returns False because 5 is neither less than or equal to 3
ستكون النتيجة:
False
Try it » مِن ملف oper_compare7.pyعوامل بايثون المنطقية
تُستخدم المعاملات المنطقية(Logical operators ) لِدمج العبارات الشرطية:and
Returns True if both statements are true
تُرجع True إذا كانت كلتا العبارتين صحيحتين
x < 5 and x < 10
مثال
x = 5print(x > 3 and x < 10)
# returns True because 5 is greater than 3 AND 5 is less than 10
ستكون النتيجة:
True
Try it » مِن ملف oper_logical1.pyor
Returns True if one of the statements is true
تُرجع True إذا كانت أحدى العبارتين صحيحة
x < 5 or x < 4
مثال
x = 5print(x > 3 or x < 4)
# returns True because one of the conditions are true (5 is greater than 3, but 5 is not less than 4)
ستكون النتيجة:
True
Try it » مِن ملف oper_logical2.pynot
Reverse the result, returns False if the result is true
تعكس النتيجة ، وتُرجع False إذا كانت النتيجة True
not(x < 5 and x < 10)
مثال
x = 5print(not(x > 3 and x < 10))
# returns False because not is used to reverse the result
ستكون النتيجة:
False
Try it » مِن ملف oper_logical3.pyمعاملات الهوية في بايثون
تُستخدم عوامل الهوية(Identity operators ) لمقارنة الكائنات ، ليس إذا كانت متساوية ، ولكن إذا كانت في الواقع نفس الكائن ، مع نفس موقع الذاكرة:is
Returns True if both variables are the same object
تُرجع True إذا كان كلا المتغيرَين هما نفس الكائن
x is y
مثال
x = ["apple", "banana"]
y = ["apple", "banana"]
z = xprint(x is z)
# returns True because z is the same object as x
print(x is y)
# returns False because x is not the same object as y, even if they have the same content
print(x == y)
# to demonstrate the difference betweeen "is" and "==": this comparison returns True because x is equal to y
ستكون النتيجة:
True
False
True
Try it » مِن ملف oper_identity1.pyis not
Returns True if both variables are not the same object
تُرجع True إذا كان كلا المتغيرَين ليسا نفس الكائن
x is not y
مثال
x = ["apple", "banana"]
y = ["apple", "banana"]
z = xprint(x is not z)
# returns False because z is the same object as x
print(x is not y)
# returns True because x is not the same object as y, even if they have the same content
print(x != y)
# to demonstrate the difference betweeen "is not" and "!=": this comparison returns False because x is equal to y
ستكون النتيجة:
False
True
False
Try it » مِن ملف oper_identity2.pyمعاملات العضوية في بايثون
تُستخدم معاملات العضوية(Membership operators ) لاختبار ما إذا كانت سلسلة(sequence ) موجودة في كائن:in
Returns True if a sequence with the specified value is present in the object
تُرجع True إذا كان تسلسل قيمة محددة موجودة في الكائن
x in y
مثال
x = ["apple", "banana"]print("banana" in x)
# returns True because a sequence with the value "banana" is in the list
ستكون النتيجة:
True
Try it » مِن ملف oper_membership1.pynot in
Returns True if a sequence with the specified value is not present in the object
تُرجع True إذا كانت ِقيمة سلسلة محددةغير موجودة في الكائن
x not in y
مثال
x = ["apple", "banana"]print("pineapple" not in x)
# returns True because a sequence with the value "pineapple" is not in the list
ستكون النتيجة:
True
Try it » مِن ملف oper_membership2.pyمعاملات Python Bitwise(Bitwise operators )
ملاحظة: مَن ليس عنده فكرة عن ال binary numbers, يمكنه تجاوز هذا الموضوع, لإنَّه ربما سيكون مِن الصعب عليه فهمه.
تُستخدم معاملات Bitwise لمقارنة الأرقام (الثنائية) binary numbers:&
AND
Sets each bit to 1 if both bits are 1
تعيين كل بت إلى 1 إذا كان كلا البتين هي 1
|
OR
Sets each bit to 1 if one of two bits is 1
جعل البت 1, إذا كان أي مِن البتين هو 1
^
XOR
Sets each bit to 1 if only one of two bits is 1
جعل كل بت 1 إذا كان واحد فقط من الاثنين هو 1
~
NOT
Inverts all the bits
تعكس جميع البتات
<<
Zero fill left shift
Shift left by pushing zeros in from the right and let the leftmost bits fall off
الإزاحة لليسار عن طريق دفع الأصفار من جهةْ اليمين والسماح للبت أقصى اليسار أن تسقط
>>
Signed right shift
Shift right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off
الإزاحة لليمين, عن طريق دفع نسخ من البت أقصى اليسار من اليسار ، والسماح للبت أقصى اليمين أن تسقطاختبر نفسك مع التمارين
التمرين:
اضرب 10 مع 5، واطْبع النتيجة.
print(10 ... 5)الإجابة :
print(10 * 5)ملحوظة خارجية:
يُمكنك بكل بَساطة تجربةْ الأمثلة أو الكود الخاص بهذه الدروس في هذا البرنامج التعلييمي, في بوابةْ بايثون في NVDA(NVDA python console).
و نعني الأمثلة أو الكود, الذي يتألف مِن عدةْ أَسْطُر.
ففي إصدارات NVDA الحديثة, صارت بوابةْ بايثون تقبل إدخال أو لصق عدةْ أَسْطُر فيها.
يعني أنت تقوم في البداية بنسخ الكود المطلوب مَهما كان عدد الأسطر فيه
ثُم نفتح بوابةْ بايثون في NVDA, بالإختصار NVDA + Control + z
ثُمَّ نلصق فيها الكود بالإختصار الذي نعرفه Control+v
NVDA يقوم بإدخال الكود سطرا سطرا, و ستسمعه بعد إدخال كل سطر يقول
>>>
و عندما يتوقف أو ينتهي, يتبقى عليك أنت فقط أن تضغط إنتر لإدخال السطر الأخير.
ستسمع النتيجة
و يمكن أيضا أن نضغط F6, للوقوف على نافذةْ النتيجة لنقرأها.الدرس مع الملفات المُرفقة:
https://www.dropbox.com/s/naq91rmfsu8vf1z/14Python%20Operators.zip?dl=1
مشغلات بايثون, Python Operators
مشغلات أو عوامل(Operators) بايثون
تُستخدم العوامل لإجراء عمليات على المتغيرات والقيم.
يُقَسِّم Python العوامل إذا المجموعات التالية:
• العمليات الحسابية
• عوامل الإسناد
• عوامل المقارنة
• العوامل المنطقية
• عوامل التأكد مِن الهوية
• مشغلي أو عوامل معرفةْ العضوية
• معاملات البت(Bitwise operators)
معاملات بايثون الحسابية
تُستخدم العوامل الحسابية مع القيم الرقمية لإجراء عمليات حسابية شائعة:
+
الجمع(Addition)
x + y
مثال
x = 5
y = 3
print(x + y)
ستكون النتيجة:
8
Try it » مِن ملف oper_add.py
-
الطرح(Subtraction)
x - y
مثال
x = 5
y = 3
print(x - y)
ستكون النتيجة:
2
Try it » مِن ملف oper_sub.py
*
الضرب(Multiplication)
x * y
مثال
x = 5
y = 3
print(x * y)
ستكون النتيجة:
15
Try it » مِن ملف oper_mult.py
/
القِسمة(Division)
x / y
مثال
x = 12
y = 3
print(x / y)
ستكون النتيجة:
4
Try it » مِن ملف oper_div.py
%
باقي القِسمة(Modulus)
x % y
مثال
x = 5
y = 2
print(x % y)
ستكون النتيجة:
1
Try it » مِن ملف oper_mod.py
**
الأُسية(Exponentiation)
x ** y
مثال
x = 2
y = 5
print(x ** y) #same as 2*2*2*2*2
ستكون النتيجة:
32
Try it » مِن ملف oper_exp.py
//
ناتج القِسمة بمعزل عن الباقي(Floor division)
x // y
مثال
x = 15
y = 2
print(x // y)
#the floor division // rounds the result down to the nearest whole number
ستكون النتيجة:
7
Try it » مِن ملف oper_floordiv.py
عوامل الإسناد في بايثون(Assignment Operators)
تُستخدم عوامل الإسناد لتعيين أو إعطاء قيم للمتغيرات:
=
x = 5
مثال
x = 5
print(x)
ستكون النتيجة:
5
Try it » مِن ملف oper_ass1.py
+=
x += 3
هي تُعادِل تماما :
x = x + 3
مثال
x = 5
x += 3
print(x)
ستكون النتيجة:
8
Try it » مِن ملف oper_ass2.py
-=
x -= 3
هي تُعادِل تماما:
x = x - 3
مثال
x = 5
x -= 3
print(x)
ستكون النتيجة:
2
Try it » مِن ملف oper_ass3.py
*=
x *= 3
هي تُعادِل تماما:
x = x * 3
مثال
x = 5
x *= 3
print(x)
ستكون النتيجة:
15
Try it » مِن ملف oper_ass4.py
/=
x /= 3
هي تُعادِل تماما:
x = x / 3
مثال
x = 5
x /= 3
print(x)
ستكون النتيجة:
1.6666666666666667
Try it » مِن ملف oper_ass5.py
%=
x %= 3
هي تُعادِل تماما:
x = x % 3
مثال
x = 5
x%=3
print(x)
ستكون النتيجة:
2
Try it » مِن ملف oper_ass6.py
//=
x //= 3
هي تُعادِل تماما:
x = x // 3
مثال
x = 5
x//=3
print(x)
ستكون النتيجة:
1
Try it » مِن ملف oper_ass7.py
**=
x **= 3
هي تُعادِل تماما:
x = x ** 3
مثال
x = 5
x **= 3
print(x)
ستكون النتيجة:
125
Try it » مِ ملف oper_ass8.py
&=
x &= 3
هي تُعادِل تماما:
x = x & 3
مثال
x = 5
x &= 3
print(x)
ستكون النتيجة:
1
Try it » مِن ملف oper_ass9.py
|=
x |= 3
هي تُعادِل تماما:
x = x | 3
مثال
x = 5
x |= 3
print(x)
ستكون النتيجة:
7
Try it » مِن ملف oper_ass10.py
^=
x ^= 3
هي تُعادِل تماما:
x = x ^ 3
مثال
x = 5
x ^= 3
print(x)
ستكون النتيجة:
6
Try it » مِن ملف oper_ass11.py
>>=
x >>= 3
هي تُعادِل تماما:
x = x >> 3
مثال
x = 5
x >>= 3
print(x)
ستكون النتيجة:
0
Try it » مِن ملف oper_ass12.py
<<=
x <<= 3
هي تُعادِل تماما:
x = x << 3
مثال
x = 5
x <<= 3
print(x)
ستكون النتيجة:
40
Try it » مِن ملف oper_ass13.py
ملاحظة: عوامل ال Bitwise هذه التي سبقت, مثل &, |, ^ و غيرها يمكن تجاوزها خصوصا لمن ليس لديه فكرة عن الأرقام الثنائية أو binary numbers.
عوامل المقارنة في بايثون
يتم استخدام عوامل المقارنة(Comparison operators ) لمقارنةْ قيمتين:
==
متساوية(Equal)
x == y
مثال
x = 5
y = 3
print(x == y)
# returns False because 5 is not equal to 3
ستكون النتيجة:
False
Try it » مِن ملف oper_compare1.py
!=
لا تساوي(Not equal)
x != y
مثال
x = 5
y = 3
print(x != y)
# returns True because 5 is not equal to 3
ستكون النتيجة:
True
Try it » مِن ملف oper_compare2.py
>
أكبر من(Greater than)
x > y
مثال
x = 5
y = 3
print(x > y)
# returns True because 5 is greater than 3
ستكون النتيجة:
True
Try it » مِن ملف oper_compare4.py
<
أقل من(Less than)
x < y
مثال
x = 5
y = 3
print(x < y)
# returns False because 5 is not less than 3
ستكون النتيجة:
False
Try it » مِن ملف oper_compare5.py
>=
أكبر من أو يساوي(Greater than or equal to)
x >= y
مثال
x = 5
y = 3
print(x >= y)
# returns True because five is greater, or equal, to 3
ستكون النتيجة:
True
Try it » مِن ملف oper_compare6.py
<=
أقل من أو يساوي(Less than or equal to)
x <= y
مثال
x = 5
y = 3
print(x <= y)
# returns False because 5 is neither less than or equal to 3
ستكون النتيجة:
False
Try it » مِن ملف oper_compare7.py
عوامل بايثون المنطقية
تُستخدم المعاملات المنطقية(Logical operators ) لِدمج العبارات الشرطية:
and
Returns True if both statements are true
تُرجع True إذا كانت كلتا العبارتين صحيحتين
x < 5 and x < 10
مثال
x = 5
print(x > 3 and x < 10)
# returns True because 5 is greater than 3 AND 5 is less than 10
ستكون النتيجة:
True
Try it » مِن ملف oper_logical1.py
or
Returns True if one of the statements is true
تُرجع True إذا كانت أحدى العبارتين صحيحة
x < 5 or x < 4
مثال
x = 5
print(x > 3 or x < 4)
# returns True because one of the conditions are true (5 is greater than 3, but 5 is not less than 4)
ستكون النتيجة:
True
Try it » مِن ملف oper_logical2.py
not
Reverse the result, returns False if the result is true
تعكس النتيجة ، وتُرجع False إذا كانت النتيجة True
not(x < 5 and x < 10)
مثال
x = 5
print(not(x > 3 and x < 10))
# returns False because not is used to reverse the result
ستكون النتيجة:
False
Try it » مِن ملف oper_logical3.py
معاملات الهوية في بايثون
تُستخدم عوامل الهوية(Identity operators ) لمقارنة الكائنات ، ليس إذا كانت متساوية ، ولكن إذا كانت في الواقع نفس الكائن ، مع نفس موقع الذاكرة:
is
Returns True if both variables are the same object
تُرجع True إذا كان كلا المتغيرَين هما نفس الكائن
x is y
مثال
x = ["apple", "banana"]
y = ["apple", "banana"]
z = x
print(x is z)
# returns True because z is the same object as x
print(x is y)
# returns False because x is not the same object as y, even if they have the same content
print(x == y)
# to demonstrate the difference betweeen "is" and "==": this comparison returns True because x is equal to y
ستكون النتيجة:
True
False
True
Try it » مِن ملف oper_identity1.py
is not
Returns True if both variables are not the same object
تُرجع True إذا كان كلا المتغيرَين ليسا نفس الكائن
x is not y
مثال
x = ["apple", "banana"]
y = ["apple", "banana"]
z = x
print(x is not z)
# returns False because z is the same object as x
print(x is not y)
# returns True because x is not the same object as y, even if they have the same content
print(x != y)
# to demonstrate the difference betweeen "is not" and "!=": this comparison returns False because x is equal to y
ستكون النتيجة:
False
True
False
Try it » مِن ملف oper_identity2.py
معاملات العضوية في بايثون
تُستخدم معاملات العضوية(Membership operators ) لاختبار ما إذا كانت سلسلة(sequence ) موجودة في كائن:
in
Returns True if a sequence with the specified value is present in the object
تُرجع True إذا كان تسلسل قيمة محددة موجودة في الكائن
x in y
مثال
x = ["apple", "banana"]
print("banana" in x)
# returns True because a sequence with the value "banana" is in the list
ستكون النتيجة:
True
Try it » مِن ملف oper_membership1.py
not in
Returns True if a sequence with the specified value is not present in the object
تُرجع True إذا كانت ِقيمة سلسلة محددةغير موجودة في الكائن
x not in y
مثال
x = ["apple", "banana"]
print("pineapple" not in x)
# returns True because a sequence with the value "pineapple" is not in the list
ستكون النتيجة:
True
Try it » مِن ملف oper_membership2.py
معاملات Python Bitwise(Bitwise operators )
ملاحظة: مَن ليس عنده فكرة عن ال binary numbers, يمكنه تجاوز هذا الموضوع, لإنَّه ربما سيكون مِن الصعب عليه فهمه.
تُستخدم معاملات Bitwise لمقارنة الأرقام (الثنائية) binary numbers:
&
AND
Sets each bit to 1 if both bits are 1
تعيين كل بت إلى 1 إذا كان كلا البتين هي 1
|
OR
Sets each bit to 1 if one of two bits is 1
جعل البت 1, إذا كان أي مِن البتين هو 1
^
XOR
Sets each bit to 1 if only one of two bits is 1
جعل كل بت 1 إذا كان واحد فقط من الاثنين هو 1
~
NOT
Inverts all the bits
تعكس جميع البتات
<<
Zero fill left shift
Shift left by pushing zeros in from the right and let the leftmost bits fall off
الإزاحة لليسار عن طريق دفع الأصفار من جهةْ اليمين والسماح للبت أقصى اليسار أن تسقط
>>
Signed right shift
Shift right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off
الإزاحة لليمين, عن طريق دفع نسخ من البت أقصى اليسار من اليسار ، والسماح للبت أقصى اليمين أن تسقط
اختبر نفسك مع التمارين
التمرين:
اضرب 10 مع 5، واطْبع النتيجة.
print(10 ... 5)
الإجابة :
print(10 * 5)
ملحوظة خارجية:
يُمكنك بكل بَساطة تجربةْ الأمثلة أو الكود الخاص بهذه الدروس في هذا البرنامج التعلييمي, في بوابةْ بايثون في NVDA(NVDA python console).
و نعني الأمثلة أو الكود, الذي يتألف مِن عدةْ أَسْطُر.
ففي إصدارات NVDA الحديثة, صارت بوابةْ بايثون تقبل إدخال أو لصق عدةْ أَسْطُر فيها.
يعني أنت تقوم في البداية بنسخ الكود المطلوب مَهما كان عدد الأسطر فيه
ثُم نفتح بوابةْ بايثون في NVDA, بالإختصار NVDA + Control + z
ثُمَّ نلصق فيها الكود بالإختصار الذي نعرفه Control+v
NVDA يقوم بإدخال الكود سطرا سطرا, و ستسمعه بعد إدخال كل سطر يقول
>>>
و عندما يتوقف أو ينتهي, يتبقى عليك أنت فقط أن تضغط إنتر لإدخال السطر الأخير.
ستسمع النتيجة
و يمكن أيضا أن نضغط F6, للوقوف على نافذةْ النتيجة لنقرأها.
الدرس مع الملفات المُرفقة:
https://www.dropbox.com/s/naq91rmfsu8vf1z/14Python%20Operators.zip?dl=1