يوسف اوردو2 نشر 5 يونيو أرسل تقرير نشر 5 يونيو السلام عليكم ورحمة الله وبركاته. متى تكون العوامل ترابطية ومتى لا تكون ترابطية؟ ولماذا عوامل المقارنة ليست بترابطية ؟ 1 اقتباس
0 محمد_عاطف نشر 5 يونيو أرسل تقرير نشر 5 يونيو وعليكم السلام ورحمة الله وبركاته. يتم تسمية العملية بترابطية إذا لم يتغير الناتج الخاص بها بتغيير ترتيب الأقواس عند تنفيذها على أكثر من عنصر فمثلا عمليات الجمع والضرب هي ترابطية لأن النتائج لا تختلف بإختلاف ترتيب تنفيذ العملية : ( 2 + 3 ) + 4 2 + ( 3 + 4 ) ففي المثال السابق هنا النتيجة واحدة للعمليتين فلا إختلاف في الناتج النهائي إذا فهي ترابطية . أما إذا تغير ناتج العملية بتغيير الأقواس أو بتغير ترتيب التنفيذ فهي غير ترابطية مثل عمليات الطرح والقسمة. أما بالنسبة إلى سؤالك عن عوامل المقارنة فهي ليست ترابطية لأن ناتج المقارنة هو قيمة منطقية (Boolean) وعندما تقوم بمقارنة أخرى بعدها فإنك تقارن بين نتيجة منطقية وعدد أو نتيجتين منطقيتين مما يغير معنى العملية. 5 > 3 > 1 فمثلا هنا أولا يتم تنفيذ 5 > 3 والتيجة true وبعد ذلك يتم مقارنة true > 1 وهنا نحول true إلى 1، فتصبح المقارنة 1 > 1 أى النتيجة النهائية ب false. لكن في نفس المثال السابق قمنا بتغير ترتيب تنفيذ العملية هكذا : 5 > (3 > 1) هنا أولا 3 > 1 تساوي trueوبعد ذلك نقارن 5 > true أى 5 > 1 وستكون النتيجة النهائية true. وهكذا بما أن الناتج مختلف حسب ترتيب تنفيذ العملية فإذا العامل > ليس ترابطي. إذا لم تكن تقصد ما سبق يرجى توضيح سؤالك . ولو كان هذا السؤال مرتبط بإحدى دروس الدورات فستجد في أسفل الدرس صندوق للتعليقات كما هنا يرجى وضع سؤالك هناك أسفل الدروة لمساعدتك بشكل أفضل. 1 اقتباس
0 يوسف اوردو2 نشر الأحد في 08:44 الكاتب أرسل تقرير نشر الأحد في 08:44 السلام عليكم. وجدت ضالتي في جوابك ،شكرا. ولكن كيف نقارن أو كيف يمكن الحصول على نتيجة من خلال المقارنة بين شيئين مختلفين :نتيجة منطقية وعدد ؟ أم ان بايثون تفهم false على أنه 0 و true على أنه 1. 1 اقتباس
0 عبدالباسط ابراهيم نشر الاثنين في 10:46 أرسل تقرير نشر الاثنين في 10:46 بتاريخ On 8/6/2025 at 11:44 قال يوسف اوردو2: السلام عليكم. وجدت ضالتي في جوابك ،شكرا. ولكن كيف نقارن أو كيف يمكن الحصول على نتيجة من خلال المقارنة بين شيئين مختلفين :نتيجة منطقية وعدد ؟ أم ان بايثون تفهم false على أنه 0 و true على أنه 1. وعليكم السلام ورحمة الله وبركاته. نعم، إجابتك صحيحة تمامًا حيث أن True يعامل كـ 1 False يعامل كـ 0 وهذا يعني أنك عند إجراء مقارنة بين قيمة منطقية وعدد، فإن بايثون تقوم تلقائيًا بتحويل القيمة المنطقية إلى عدد صحيح (int) 1 اقتباس
0 Mustafa Suleiman نشر الأربعاء في 20:40 أرسل تقرير نشر الأربعاء في 20:40 بتاريخ On 8/6/2025 at 11:44 قال يوسف اوردو2: السلام عليكم. وجدت ضالتي في جوابك ،شكرا. ولكن كيف نقارن أو كيف يمكن الحصول على نتيجة من خلال المقارنة بين شيئين مختلفين :نتيجة منطقية وعدد ؟ أم ان بايثون تفهم false على أنه 0 و true على أنه 1. بالضبط، بإجراء عمليات حسابية أو مقارنات بين قيمة منطقية ورقم، تقوم بايثون بشكل ضمني أي في الخلفية بتحويل القيمة المنطقية إلى ما يعادلها من الأعداد الصحيحة 1 لـ True و 0 لـ False ثم تجري العملية. وذلك لآنّ النوع bool في بايثون هو في الواقع نوع فرعي من النوع int وتستطيع حتى استخدام القيم المنطقية في عمليات الجمع والطرح والضرب: result_add = 5 + True print(result_add) result_mul = 10 * False print(result_mul) result_sub = 100 - True print(result_sub) لكن هناك أمر هام وهو True == 1 نتيجتها True لأن قيمهما متساوية، لكن True is 1 تُعيد False، حيث ==يتحقق من تساوي القيمة. بينما is يتفقد هل المتغيران يشيران إلى نفس الكائن في الذاكرة أم لا؟ وبما أنّ True هو كائن من النوع bool، و 1 هو كائن من النوع int لذا هما نوعان مختلفان، وبالتالي ليسا نفس الكائن. print(True == 1) print(True is 1) 1 اقتباس
السؤال
يوسف اوردو2
السلام عليكم ورحمة الله وبركاته.
متى تكون العوامل ترابطية ومتى لا تكون ترابطية؟ ولماذا عوامل المقارنة ليست بترابطية ؟
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.