السلاسل النصية المُنسَّقة

3.2 السلاسل النصية المُنسَّقة

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على:

  • استخدام السلاسل النصية المُنسَّقة (f-strings) لتبسيط الإخراج بقيم متعددة.
  • تنسيق الأرقام بأصفار بادئة ودقة ثابتة.

السلاسل النصية المُنسَّقة

إن سلسلة نصية حرفية مُنسَّقة (formatted string literal) (أو سلسلة نصية مُنسَّقة) هي سلسلة نصية حرفية مسبوقة بالحرف "f" أو "F". حقل الاستبدال تعبير داخل أقواس معقوفة ({}) ضمن سلسلة نصية مُنسَّقة. مثال: السلسلة النصية f"Good morning, {first} {last}!" تحتوي على حقلَي استبدال: أحدهما للاسم الأول، والآخر للاسم الأخير. توفر السلاسل النصية المُنسَّقة طريقة ملائمة لدمج قيم متعددة في سلسلة نصية واحدة.

نقطة تحقق

طباعة سلسلة نصية مُنسَّقة

مفاهيم تطبيقية

أساسيات السلاسل النصية المُنسَّقة

1.
ما ناتج الشِفرة التالية؟
animal = "dog"
says = "bark"
print(f"My {animal} says {says} {says} {says}")
  1. My dog bark bark bark bark
  2. My dog says bark bark bark
  3. Error
2.
ما ناتج الشِفرة التالية؟
temp = "hot"
food = "potato"
print("{temp} {food}")
  1. {temp} {food}
  2. hot potato
  3. Error
3.
كيف يمكن إعادة كتابة الشِفرة التالية باستخدام سلسلة نصية مُنسَّقة؟
print(x, "+", y, "=", x + y)
  1. print(f"x + y = {x+y}")
  2. print(f"{x + y} = {x + y}")
  3. print(f"{x} + {y} = {x+y}")

تنسيق الأرقام

غالبًا ما تحتاج البرامج إلى عرض الأرقام بتنسيق معين. مثال: عند عرض الوقت، تُنسَّق الدقائق كأعداد صحيحة مكونة من رقمين. إذا كانت الساعة 9 والدقيقة 5، فإن الوقت هو "9:05" (وليس "9:5").

في السلسلة النصية المُنسَّقة، قد يتضمن حقل الاستبدال مُحدِّد تنسيق يُسبَق بنقطتين رأسيتين. يُعرّف مُحدِّد التنسيق كيفية تنسيق القيمة للعرض. مثال: في السلسلة النصية f"{hour}:{minute:02d}"، مُحدِّد التنسيق للمُتغيِّر minute هو 02d.

التنسيق الوصف مثال النتيجة

d

عدد صحيح عشري (تنسيق الأعداد الصحيحة الافتراضي).

f"{12345678:d}"

'12345678'

,d

عدد صحيح عشري، مع فواصل.

f"{12345678:,d}"

'12,345,678'

10d

عدد صحيح عشري، بعرض 10 أحرف على الأقل.

f"{12345678:10d}"

'  12345678'

010d

عدد صحيح عشري، بعرض 10 أحرف على الأقل، مع أصفار بادئة.

f"{12345678:010d}"

'0012345678'

f

نقطة ثابتة (الافتراضي هو 6 منازل عشرية).

f"{math.pi:f}"

'3.141593'

.4f

نقطة ثابتة، مقربة إلى 4 منازل عشرية.

f"{math.pi:.4f}"

'3.1416'

8.4f

نقطة ثابتة، مقربة إلى 4 منازل عشرية، بعرض 8 أحرف على الأقل.

f"{math.pi:8.4f}"

'  3.1416'

08.4f

نقطة ثابتة، مقربة إلى 4 منازل عشرية، بعرض 8 أحرف على الأقل، مع أصفار بادئة.

f"{math.pi:08.4f}"

'003.1416'

الجدول 3.3 أمثلة على مُحدِّدات التنسيق. يوضح الجدول الطرق الشائعة التي يمكن بها تنسيق الأرقام. تتوفر العديد من خيارات التنسيق الأخرى والموصوفة في لغة التنسيق المصغرة (Format Specification Mini-Language) الخاصة ببايثون.

مفاهيم تطبيقية

تنسيق الأرقام

4.
ما السلسلة النصية المُنسَّقة التي تنسق التاريخ بالشكل MM/DD/YYYY؟
  1. f"{month:02d}/{day:02d}/{year}"
  2. f"{month:2d}/{day:2d}/{year}"
  3. f"{month}/{day}/{year}"
5.
ما التعليمة التي تعرض المُتغيِّر money مقربًا إلى منزلتين عشريتين؟
  1. print(f"{money:2d}")
  2. print(f"{money:2f}")
  3. print(f"{money:.2f}")
6.
ما مُحدِّد التنسيق الذي يعرض عددًا بفاصلة عائمة مع فواصل ومقربًا إلى منزلتين عشريتين؟
  1. .2,f
  2. ,.2f
  3. ,d.2f

جرّب بنفسك

لعبة الكلمات المجنونة (سلسلة نصية مُنسَّقة)

لعبة الكلمات المجنونة (mad lib) هي قصة مضحكة تستخدم كلمات يقدمها المستخدم. تعتمد لعبة الكلمات المجنونة التالية على أربع كلمات (مدخلات المستخدم بالخط العريض):

    أدخل اسمًا: Buster
    أدخل اسمًا شائعًا: dog
    أدخل صفة: super
    فعل ينتهي بـ -ing: swimming
    
    Buster, the super dog, likes to go swimming.

معظم الشِفرة لهذه اللعبة مكتوبة بالفعل. أكمل الشِفرة أدناه بكتابة السلسلة النصية المُنسَّقة.

جرّب بنفسك

حاسبة الأجور

لقد حصلت للتو على وظيفة بدوام جزئي وترغب في حساب مقدار المال الذي ستكسبه. اكتب برنامجًا يدخل وقت بدء العمل، ووقت التوقف عن العمل، ومعدل الأجر بالساعة (مثال المدخلات بالخط العريض):

    ساعة البدء: 9
    دقيقة البدء: 30
    ساعة التوقف: 11
    دقيقة التوقف: 0
    معدل الأجر بالساعة: 15

بناءً على مدخلات المستخدم، يجب أن يحسب برنامجك ويعرض النتائج التالية:

    عمل من 9:30 إلى 11:00
    إجمالي الساعات: 1.5
    الدفع: $22.50

لهذا التمرين، تحتاج إلى كتابة شِفرة (1) تحسب إجمالي الدفع و (2) تنسق أسطر الإخراج الثلاثة. استخدم السلاسل النصية المُنسَّقة ومُحدِّدات التنسيق لعرض الدقائق برقمين، ومنزلة عشرية واحدة للساعات، ومنزلتين عشريتين للدفع. تم توفير شِفرة الإدخال كنقطة بداية.

افترض استخدام نظام 24 ساعة. مثال: يتم استخدام 16:15 بدلاً من 4:15 مساءً.