الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Short-circuit logic

بدأه Blueteeth في 26 مايو 2013 · 7 رد · 972 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم,

أنا بعانى فى الإعتياد على ال short-circuit logic فى بايثون, بقرأ حاليا فى كتاب و فى مثال مش فاهمه كويس و مش قادر أعرف هو ليه كتب الشرط بالطريقة دى

 

if not allow_zero and abs(x) < sys.float_info.epsilon:
                print("zero is not allowed")

 

هو عايز لما تكون ال allow_zero ب False لو ال x بصفر يطبع الجملة اللى مكتوبة دى.

#2
اخي الكريم 

الامر واضح جدا


هذه التجربة تستعمل على ما اعتقد في التحليل الرياضي والعمليات المنطقية 

اي اين يجب استخدام الا الصفر و الواحد داخل العمليات 

 

اذا هو يريد التاكد من ان ناتج العملية (allow_zero and abs(x هو الصفر المطلق وذلك من خلال مقارنته مع ابسلون الذي هو


اصغر عدد موجب يمكن الحصول عليه
#4
الاجابة تعتمد على قيمة X

باعتبار ان قيمة X هي 0 او 1

فان:

True and 1 = 1

True and 0 = 0

 

and تمثل عملية الضرب

 

ايضا:

 

False and False = False

False and True = True

True and True = True

True and True = True

 

للاطلاع اكثر يمكنك مراجعة جداول الحقيقة و العمليات المنطقية

تم تعديل هذه المشاركة بواسطة med reda في 27 مايو 2013 في 14:54

#5

يا فندم حضرتك بتشرحلى جدول الحقيقة بينما مش هو ده اللى البايثون بيعمله، يعنى لما تكون ال allow_zero ب True حيبقى not allow_zero ب False و بالتالى هو ده الحد اللى سيحدد نتيجة ال and و بالتالى حيبقى هو ناتج ال and ككل، طيب ال False فعلا أقل من ال epsilon مما يعنى أن شرط ال if حيبقى True!!!

#6

خلاص يا باشا أنا فهمت صح دلوقتى، أنا اللى كنت فاهم غلط، كنت فاهمه كالآتى>

if ( not allow_zero and abs(x) ) < sys.float_info.epsilon
#7

اذا لو راجعت الاجابة الاولى جيدا لفهمت ما اقصد

#8

لأ ما هى إجابة حضرتك الأولى مطابقة لفهمى الغلط حيث أنه لا وجود للعملية " (allow_zero and abs(x"! :) لأن الصح أن ال not allow-zero تقيم أولا كحد مستقل ثم abs(x) < sys.float_info.epsilon تقيم إذا إحتاج لذلك.

شاكر إهتمامك جدا.

مواضيع مشابهة