الفصل 4
4.1 القيم المنطقية
6.
b.
إسناد نوع منطقي إلى عدد صحيح يؤدي إلى تحويل نوع ضمني. يمكن أن يتسبب تحويل الأنواع في مشاكل لاحقًا في الشِفرة إذا افترض المبرمج أن
is_dessert لا يزال نوعًا منطقيًا.
18.
c.
لا يمكن مقارنة أنواع البيانات الرقمية بـ السلاسل النصية باستخدام عوامل المقارنة: >, <, >=, <=. استخدام == أو != سينتج نوعًا منطقيًا.
19.
b.
تتم مقارنة السلاسل النصية بمقارنة نقاط الرمز لـ يونيكود لكل حرف. للحروف قيم يونيكود تصاعدية بترتيب أبجدي (وهي حساسة لحالة الأحرف).
"c"
و
"c"
متساويان، لذا تتم مقارنة
"i"
بـ
"o"
.
"i"
لا تساوي
"o"
لذا يتم إنتاج
False
، على الرغم من أن الكزبرة والكزبرة المجففة تأتيان من نفس النبات.
20.
b.
للحروف قيم يونيكود تصاعدية بترتيب أبجدي (وهي حساسة لحالة الأحرف).
"d"
أكبر من، وليست أصغر من،
"c"
، لذا يتم إنتاج
False
.
4.2 تعليمات الشرط
6.
c.
يتم اتخاذ فرع
if
عندما يكون x >= 15، لذا يتم اتخاذ فرع
else
عندما لا يكون x أكبر من أو يساوي
15
.
8.
b.
يتم دائمًا اتخاذ أحد الفرعين في تعليمات الشرط. اعتمادًا على القيمة النهائية لـ
x، ستكون القيمة النهائية لـ y إما
30
أو
105
.
4.3 العمليات المنطقية
2.
b.
3000 > 3000 هي
False
. False and True هي
False
. False and False هي
False
. لذا لا توجد قيمة لـ hrs_to_close ستسمح لدارسي بالدخول.
4.
b.
(8 < 10) and (21 > 20) تُقيَّم إلى True and True، وهي
True
. لذا يتم تنفيذ الجزء الرئيسي لـ تعليمة الشرط، ويتم إسناد
5
إلى z.
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
. تعليمة الشرط تتحقق مما إذا كانت الأرقام تشكل زوجًا فرديًا-زوجيًا أو زوجيًا-فرديًا.
4.4 أسبقية العوامل
4.
b.
الضرب والقسمة لهما أسبقية العوامل الأعلى، وهما ترابطيتان من اليسار، ولهما أسبقية العوامل أعلى من الجمع.
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
.
5.
c.
تعليمات الشرط
if
وif-elif ليست متسلسلة. يتم تقييم
if
الأولى إلى
True
وتنفذ. ثم يتم تقييم if-elif ويتم تنفيذ فرع
elif
.
9.
c.
يتم تنفيذ الفرع الأول إذا كان
price < 9.99. يتم تنفيذ الفرع الثاني إذا كان price < 19.99 وفشل الشرط الأول: أي، price >= 9.99. يتم تنفيذ الفرع الثالث إذا فشل الشرطان الأول والثاني: أي، price >= 19.99. يمكن للتسلسل تبسيط تعليمات القرارات.
4.6 قرارات متداخلة
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 فرديًا.
4.
b.
التعبيرات الشرطية التي تُقيَّم إلى نوع منطقي تكون زائدة عن الحاجة. يجب استخدام التعبير المنطقي بدلاً من ذلك.
5.
b.
يتم تقييم التعبير كـ
(fee + 10) if hours > 12 else 2. لذا إذا كانت hours > 12، ستكون النتيجة fee + 10؛ وإلا، ستكون النتيجة 2.