الفصل 8
8.1 عمليات السلاسل النصية
2.
b.
بما أن
"a"
أقصر من
"aa"
، والبادئة
"aa"
بطول 1 تساوي المعامل الثاني (
"a"
)، تُعتبر السلسلة النصية الأقصر هي الأصغر. وعليه، فإن "aa" < "a" تُقيّم إلى خطأ.
3.
c.
بينما توجد جميع الأحرف في
"aples"
ضمن
"apples"
، إلا أن الأحرف ليست متسلسلة، لذا فإن السلسلة النصية
"aples"
ليست سلسلة فرعية من
"apples"
. لذلك، فإن
"aples"
in
"apples"
تُرجع خطأ.
6.
a.
تقوم
upper() بتحويل
"a"
إلى حرف كبير (
"A"
). عند التحقق من "a".upper() == "A"، يكون الناتج صحيحًا.
8.2 تقطيع السلسلة النصية
1.
b.
بما أن الفهرسة تبدأ من 0، فإن الحرف الموجود في الفهرس 1 هو الحرف الثاني في السلسلة النصية، وهو
"e"
.
2.
b.
بما أن الفهرسة السالبة تبدأ من -1 من يمين السلسلة النصية إلى اليسار، فإن
"u"
يقع في الفهرس -2.
6.
b.
تقطيع السلسلة النصية
greeting[3:] هو السلسلة الفرعية التي تبدأ من الفهرس 3 حتى نهاية السلسلة النصية، وهي
"Leila"
.
8.
a.
محاولة إسناد قيمة إلى فهرس أو نطاق من الفهارس في سلسلة نصية تؤدي إلى
TypeError: 'str' object does not support item assignment.
9.
c.
الحرف الموجود في الفهرس 1، وهو
"o"
، يحل محل محتوى المتغير
str
. وعليه، فإن تعليمة الطباعة تطبع
"o"
.
8.3 البحث في السلاسل النصية واختبارها
5.
c.
تتكرر الشِفرة المعطاة على الأحرف في السلسلة النصية
"abca"
، وفي كل مرة يتم ملاحظة الحرف
"a"
، يزداد متغير العداد بمقدار 1. بما أن
"a"
يظهر مرتين في
"abca"
، فسيكون الناتج
2
.
6.
c.
تتكرر الشِفرة على الأحرف في
"cab"
وتطبع ما يعادل كل حرف بالحرف الكبير. لذلك، فإن الناتج هو
"CAB"
.
10.
a.
تُرجع دالّة find() الفهرس لأول ظهور للسلسلة الفرعية في السلسلة النصية المعطاة. الفهرس لأول ظهور للحرف
"a"
هو 1.
13.
a.
تُرجع دالّة index() فهرس بداية أول ظهور لسلسلة فرعية في السلسلة النصية المعطاة. فهرس أول ظهور للحرف
"o"
في
"school"
هو 3.
14.
c.
السلسلة الفرعية
"ooo"
لا توجد في السلسلة النصية
"ooo"
، وبالتالي تُرجع دالّة index() خطأ القيمة.
15.
a.
تُرجع
sentence.index(" ") فهرس أول حرف مسافة. تطبع تعليمة الطباعة بادئة الجملة التي تنتهي قبل أول حرف مسافة مباشرة، لذا فإن الناتج هو
"This"
.
8.4 تنسيق السلاسل النصية
3.
a.
يتم تمرير وسائط دالّة
format() بالترتيب وسيتم استبدالها بحقول الاستبدال. قد يتم تجاهل الوسائط الإضافية بواسطة القالب وتبقى غير مستخدمة.
4.
c.
يتم استبدال
"Bengio"
في حقل الاستبدال المُسمَّى المرتبط بالعلامة name؛ وبالتالي، فإن الناتج هو
"Hey Bengio!"
.
5.
b.
بما أن قالب السلسلة النصية يستخدم وسيطًا مُسمَّى، فإن المدخلات لا تُقبل إلا من خلال المفاتيح المقابلة. وبالتالي، تُنشئ الشِفرة خطأ المفتاح:
'name'.
6.
b.
يتم استبدال المتغير
greeting الذي قيمته
"Hi"
بحقل استبدال التحية. ويتم الأمر نفسه لحقل استبدال الاسم ومتغير الاسم. الناتج هو
"Hi Jess"
.
8.
c.
تحدد مواصفات المحاذاة وطول الحقل تنسيق حقل
greeting ليكون بطول ستة أحرف ومحاذًا لليمين. لذلك، سيأخذ المتغير formatted_greeting القيمة
" Hello"
، والحرف 0 من السلسلة النصية هو حرف مسافة.
9.
c.
تفرض مواصفات طول الحقل الحد الأدنى لطول السلسلة النصية. المدخلات التي تكون أطول من الحد الأدنى المحدد لن يتم تعديلها.
11.
a.
تُخرج مواصفات
{:1>3d} عددًا من 3 أرقام في الناتج، وإذا لم يكن للوسيط المعطى ثلاثة أرقام، فسيتم حشو الرقم بالآحاد من الجانب الأيسر.