الفصل 4

الفصل 4

4.1 القيم المنطقية

1.
c. "True" تستخدم علامات اقتباس، لذا القيمة هي سلسلة نصية.
2.
b. is_vegetable هو عدد صحيح ويمكن استخدامه في العوامل الحسابية.
3.
a. المُتغيِّر الذي يُسند إليه True أو False هو مُتغيِّر منطقي.
4.
a. المُتغيِّر المنطقي يمثل القيمة True أو False.
5.
b. True وFalse هما القيمتان الوحيدتان لـ مُتغيِّر منطقي.
6.
b. إسناد نوع منطقي إلى عدد صحيح يؤدي إلى تحويل نوع ضمني. يمكن أن يتسبب تحويل الأنواع في مشاكل لاحقًا في الشِفرة إذا افترض المبرمج أن is_dessert لا يزال نوعًا منطقيًا.
7.
b. أي نوع بيانات رقمي يمثل 0 يتحول إلى False. الأرقام غير الصفرية تتحول إلى True.
8.
a. العدد السالب هو غير صفري ويتحول إلى True.
9.
b. السلسلة النصية الفارغة هي السلسلة النصية الوحيدة التي تتحول إلى False.
10.
a. "0" هي سلسلة نصية غير فارغة وتتحول إلى True.
11.
a. يتم قراءة الإدخال كـ سلسلة نصية، لذا bool("False") هي True .
12.
b. True المحولة إلى عدد عشري هي 1.0. False المحولة إلى عدد عشري هي 0.0.
13.
b. True المحولة إلى سلسلة نصية هي "True" . False المحولة إلى سلسلة نصية هي "False" .
14.
b. عندما يتم تحويل نوع منطقي إلى نوع بيانات رقمي، يتم تحويل True إلى 1 ، و False إلى 0 .
15.
b. 14 أكبر من 13، لذا 14 ليست أصغر من أو تساوي 13.
16.
a. 0 أصغر من 0.4، لذا 0 لا تساوي 0.4.
17.
b. 4 تساوي 4.0، لذا 4 ليست أصغر من 4.0.
18.
c. لا يمكن مقارنة أنواع البيانات الرقمية بـ السلاسل النصية باستخدام عوامل المقارنة: >, <, >=, <=. استخدام == أو != سينتج نوعًا منطقيًا.
19.
b. تتم مقارنة السلاسل النصية بمقارنة نقاط الرمز لـ يونيكود لكل حرف. للحروف قيم يونيكود تصاعدية بترتيب أبجدي (وهي حساسة لحالة الأحرف). "c" و "c" متساويان، لذا تتم مقارنة "i" بـ "o" . "i" لا تساوي "o" لذا يتم إنتاج False ، على الرغم من أن الكزبرة والكزبرة المجففة تأتيان من نفس النبات.
20.
b. للحروف قيم يونيكود تصاعدية بترتيب أبجدي (وهي حساسة لحالة الأحرف). "d" أكبر من، وليست أصغر من، "c" ، لذا يتم إنتاج False .

4.2 تعليمات الشرط

1.
b. age < 12 تقع بين "if" و":" وهي تعبير يُقيَّم إلى True أو False .
2.
c. البرنامج ينفذ الجزء الرئيسي عندما يكون الشرط صحيحًا.
3.
b. الجزء الرئيسي، السطر 3، لا يتم تنفيذه لأن الشرط خاطئ.
4.
c. -10 < 0 صحيح، لذا يتم إسناد 25 إلى num. ثم 25 < 100، لذا يتم إسناد 25 + 50، وهي 75 ، إلى num.
5.
b. السطر 4 غير مُزاح، لذا يتم دائمًا إسناد 0 إلى positive_num. قيمة الإدخال الموجبة تُفقد.
6.
c. يتم اتخاذ فرع if عندما يكون x >= 15، لذا يتم اتخاذ فرع else عندما لا يكون x أكبر من أو يساوي 15 .
7.
a. 40 > 30، لذا يتم تنفيذ الجزء الرئيسي لـ تعليمة الشرط. y = 40 - 10 = 30.
8.
b. يتم دائمًا اتخاذ أحد الفرعين في تعليمات الشرط. اعتمادًا على القيمة النهائية لـ x، ستكون القيمة النهائية لـ y إما 30 أو 105 .

4.3 العمليات المنطقية

1.
a. 2500 < 3000 هي True ، و2.5 > 1.0 هي True ، لذا يمكن لجيدن الدخول.
2.
b. 3000 > 3000 هي False . False and True هي False . False and False هي False . لذا لا توجد قيمة لـ hrs_to_close ستسمح لدارسي بالدخول.
3.
b. False and True هي False .
4.
b. (8 < 10) and (21 > 20) تُقيَّم إلى True and True، وهي True . لذا يتم تنفيذ الجزء الرئيسي لـ تعليمة الشرط، ويتم إسناد 5 إلى z.
5.
a. (21 < 30) or False تُقيَّم إلى True or False، وهي True .
6.
c. الخصم لا ينطبق على الأعمار بين 12 و 65 شاملة.
7.
a. (9%2==0 and 10%2 ==1) تُقيَّم إلى (False and False)، وهي False . (9%2 == 1 and 10%2 == 0) تُقيَّم إلى (True and True)، وهي True . False or True هي True . تعليمة الشرط تتحقق مما إذا كانت الأرقام تشكل زوجًا فرديًا-زوجيًا أو زوجيًا-فرديًا.
8.
a. not(13 < 10) تُقيَّم إلى not(False)، وهي True .
9.
b. not(18 > 15 and 18 < 20) تُقيَّم إلى not(True and True)، ثم not(True)، وأخيرًا، False .
10.
a. 65 > 60 هي True ، لذا يتم إسناد not(False)، وهي True ، إلى is_turn.

4.4 أسبقية العوامل

1.
b. الأسس لها أسبقية العوامل الأعلى، ثم القسمة، ثم الجمع.
2.
a. الضرب له أسبقية العوامل الأعلى، ثم أكبر من، ثم not.
3.
b. القسمة لها أسبقية العوامل الأعلى، ثم المساواة وأصغر من، ثم and .
4.
b. الضرب والقسمة لهما أسبقية العوامل الأعلى، وهما ترابطيتان من اليسار، ولهما أسبقية العوامل أعلى من الجمع.
5.
b. الأسس ترابطية من اليمين ولها أسبقية العوامل أعلى من الضرب.
6.
c. التعبير صالح ويتم فصله إلى مقارنات متصلة بـ and .
7.
a. عامل المساواة، ==، له أسبقية العوامل أعلى من العامل المنطقي and .
8.
a. يتم تقييم التعبير كـ x + (3*y) - 5. 8 + (3*9) - 5 = 30.
9.
b. يتم تقييم التعبيرات بين قوسين أولاً. (8+3) * (9-5) = 11 * 4 = 44.

4.5 قرارات متسلسلة

1.
b. elif ستقيّم condition_2 إذا كانت condition_1 هي False وتنفذ Body 2 إذا كانت condition_2 هي True .
2.
b. x > 44، 42 > 44، هي False ، لذا يتم تقييم x < 50. 42 < 50 هي True ، لذا y = 0 + 5. يتم اتخاذ فرع واحد فقط من if و elif .
3.
a. إذا كان x < 0، يتم تنفيذ Body 1. وإلا إذا كان x == 0، يتم تنفيذ Body 2.
4.
a. يجب أن تكون elif متسلسلة مع تعليمة سابقة وعلى نفس مستوى الإزاحة.
5.
c. تعليمات الشرط if وif-elif ليست متسلسلة. يتم تقييم if الأولى إلى True وتنفذ. ثم يتم تقييم if-elif ويتم تنفيذ فرع elif .
6.
b. يتم تنفيذ الفرع الثالث إذا كان hour < 8 and hour < 12 هو False وhour < 13 هو True .
7.
c. يمكن تسلسل elif بـ elif أخرى لتشكيل قرار متسلسل أطول.
8.
a. يتم تنفيذ فرع واحد فقط في تعليمة قرار متسلسل. -1 < 0 and -2 < 0 هي True ، لذا y = 10.
9.
c. يتم تنفيذ الفرع الأول إذا كان price < 9.99. يتم تنفيذ الفرع الثاني إذا كان price < 19.99 وفشل الشرط الأول: أي، price >= 9.99. يتم تنفيذ الفرع الثالث إذا فشل الشرطان الأول والثاني: أي، price >= 19.99. يمكن للتسلسل تبسيط تعليمات القرارات.

4.6 قرارات متداخلة

1.
c. leaf_count == 3 هي False ، لذا يتم تنفيذ الجزء الرئيسي لـ else الخارجية.
2.
c. num_dancers موجب، لذا يتم اتخاذ فرع else . num_dancers فردي، لذا تتم طباعة رسالة الخطأ قبل أن يستمر البرنامج بعد تعليمة الشرط المتداخلة ويطبع num_dancers.
3.
b. 256 == 513 هي False ، و256 < 513 هي True ، لذا يتم اتخاذ فرع elif ويتم تنفيذ Body 2. 513 >= 512 هي True ، لذا يتم تنفيذ Body 3.
4.
c. else الأولى غير مُزاحة وتُعامل على أنها else لـ if الأصلية. وبالتالي، فإن else الثانية غير متصلة بـ تعليمة الشرط وتنتج خطأ.

4.7 التعبيرات الشرطية

1.
c. التعبير الشرطي سيسند "even" إلى response إذا كان x زوجيًا. يتم إسناد "odd" إلى response إذا كان x فرديًا.
2.
a. 100 < 100 هي False لذا يتم إسناد x - offset = 100 - 10 = 90 إلى result.
3.
c. لا يمكن إسناد min_num بـ min_num = y. التعبير الصحيح هو min_num = x if x < y else y"
4.
b. التعبيرات الشرطية التي تُقيَّم إلى نوع منطقي تكون زائدة عن الحاجة. يجب استخدام التعبير المنطقي بدلاً من ذلك.
5.
b. يتم تقييم التعبير كـ (fee + 10) if hours > 12 else 2. لذا إذا كانت hours > 12، ستكون النتيجة fee + 10؛ وإلا، ستكون النتيجة 2.