Python Academy · درس

السلاسل القالبية وstr.format

تعرّف على أدوات تنسيق أخرى

الدرس 4 من 413 خطوة

السلاسل القالبية وstr.format درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

أدوات تنسيق أخرى

إلى جانب f-strings، توفر Python أداتين إضافيتين للتنسيق: أسلوب str.format() والفئة string.Template. ولكل منهما حالات استخدام مختلفة.

print('Hello, {}!'.format('World'))

أساسيات str.format

تستبدل str.format() العناصر النائبة {} بالوسائط بالترتيب. وقد ظهرت قبل f-strings، ولا تزال مستخدمة في الكثير من الشيفرات.

msg = '{} is {} years old'.format('Ada', 36)
print(msg)

الفهارس الموضعية

ضع أرقامًا داخل الأقواس لإعادة استخدام الوسائط أو تغيير ترتيبها بحسب موضعها.

print('{0} {1} {0}'.format('echo', 'once'))

العناصر النائبة المسماة

استخدم أسماءً داخل الأقواس ومرّر وسائط بالكلمات المفتاحية. يجعل ذلك القوالب موثّقة ذاتيًا.

print('{name} scored {score}'.format(name='Lin', score=95))

تظل مواصفات التنسيق سارية

تعمل اللغة المصغّرة نفسها بعد النقطتين في str.format، لذا يمكنك التحكم في العرض والدقة والمحاذاة.

print('{:.2f}'.format(3.14159))
print('{:>8}'.format('hi'))

التنسيق من قاموس

فكّك قاموسًا إلى str.format باستخدام ** لملء العناصر النائبة المسماة.

data = {'city': 'Rome', 'temp': 27}
print('{city}: {temp} C'.format(**data))

مقدمة إلى سلاسل Template

تستخدم string.Template عناصر نائبة تعتمد على $. وهي مصممة لتكون بسيطة وأكثر أمانًا للقوالب التي يقدّمها المستخدم، لأنها لا تستطيع تشغيل تعبيرات عشوائية.

from string import Template
t = Template('Hello, $name!')
print(t.substitute(name='World'))

الأقواس للتوضيح

أحط اسم العنصر النائب بالأقواس، مثل ${name}، عندما يأتي بجوار نص آخر.

from string import Template
t = Template('${item}s cost $$5')
print(t.substitute(item='apple'))

safe_substitute

تثير substitute الخطأ KeyError عند غياب أسماء مطلوبة. أما safe_substitute فتترك العناصر النائبة غير المعروفة من دون تغيير.

from string import Template
t = Template('$greeting, $name')
print(t.safe_substitute(greeting='Hi'))

متى تستخدم كل أداة

الإرشادات: يُفضّل استخدام f-strings في الشيفرة اليومية. استخدم str.format عندما يكون القالب منفصلًا عن البيانات. واستخدم Template للقوالب غير الموثوقة التي يقدّمها المستخدم.

name = 'Sam'
print(f'f-string: {name}')
print('format: {}'.format(name))

قوالب من نص خارجي

بما أن نص القالب ليس سوى سلسلة نصية، يمكنكم تحميله من ملف إعدادات أو قاعدة بيانات، ثم استبدال القيم وقت التشغيل.

from string import Template
stored = 'Order $id ships to $city'
t = Template(stored)
print(t.substitute(id=7, city='Oslo'))

تحقق سريع

ما الأداة الأكثر أمانًا لاستبدال القيم في قالب يقدّمه مستخدم غير موثوق؟

مراجعة: قوالب السلاسل النصية وstr.format

ملخص البدائل عن سلاسل f:

  • تستخدم str.format() عناصر نائبة بصيغة {}، وتدعم المواضع والأسماء ومواصفة التنسيق الكاملة.
  • تستخدم string.Template عناصر نائبة بصيغة $name، وهي آمنة مع الإدخال غير الموثوق.
  • تُبقي safe_substitute العناصر النائبة غير المعروفة كما هي.
  • فضّلوا سلاسل f في التعليمات البرمجية العادية، واستخدموا هذه الأدوات عندما تكون القوالب خارجية أو غير موثوقة.
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))
البدء مجانًا

تعلم Python مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
76
الدروس
320

الأسئلة الشائعة

هل درس «السلاسل القالبية وstr.format» مجاني؟

نعم — نص درس «السلاسل القالبية وstr.format» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «السلاسل القالبية وstr.format»؟

تعرّف على أدوات تنسيق أخرى تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «السلاسل القالبية وstr.format»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تعبيرات f-string
  2. محدّدات التنسيق
  3. اللغة المصغّرة للتنسيق
  4. السلاسل القالبية وstr.format
← العودة إلى Python Academy