حول المحتوى:
شرح مبسط وواضح للفرق بين f-strings وt-strings في Python، مع أمثلة عملية توضح الفروقات وأفضل سيناريوهات الاستخدام لكل منهما. تعرف على ميزة t-strings القادمة في Python 3.14 ولماذا تستحق انتباهك كمطور.
منذ إصدار Python 3.6، غيّرت f-strings طريقة التعامل مع السلاسل النصية المضمنة بالمتغيرات والتعبيرات. قدمت هذه الميزة تنسيقًا مباشرًا وسهل القراءة، مما جعلها الخيار المفضل لدى المبرمجين. لكن مع تطور اللغة، ظهرت الحاجة إلى دعم أفضل للسلاسل متعددة الأسطر التي تحتوي على تعبيرات ديناميكية، فكان الحل في Python 3.14 مع ما يُعرف بـ t-strings.
في هذا المقال، نستعرض الفرق بين f-strings وt-strings، متى يُفضل استخدام كل نوع، وكيف يمكن لكل منهما تحسين جودة الكود وسهولة قراءته، مدعومًا بالأمثلة الواضحة.
f-strings أو ما تُعرف بالسلاسل المهيأة (Formatted String Literals) هي ميزة تسمح بدمج القيم مباشرة في النص باستخدام الأقواس {}
. هذه الميزة تجعل كتابة السلاسل النصية أكثر وضوحًا، دون الحاجة إلى استخدام العمليات التقليدية مثل str.format()
أو التجميع اليدوي باستخدام +
.
name = "Omar"
age = 25
print(f"My name is {name} and I'm {age} years old.")
الإخراج:
My name is Omar and I'm 25 years old.
هذه الطريقة تجعل من السهل تضمين المتغيرات مباشرة دون الحاجة إلى فصل النصوص أو استخدام دوال معقدة.
رغم قوتها، تعاني f-strings من بعض القيود عند التعامل مع سلاسل متعددة الأسطر، خاصة عند تضمين التعبيرات داخلها، حيث تصبح القراءة صعبة، وتحتاج إلى كسر الأسطر يدويًا أو استخدام تنسيقات ملتوية.
name = "Salma"
score = 87
print(
f"Student: {name}\n"
f"Score: {score}\n"
f"Status: {'Pass' if score >= 60 else 'Fail'}"
)
الكود يعمل، لكنه غير أنيق ويصعب الحفاظ عليه مع ازدياد حجم النص.
في Python 3.14، تم تقديم تحسين جديد من خلال PEP 701 يسمح بكتابة f-strings متعددة الأسطر بشكل مباشر وأكثر مرونة، ويُطلق عليه اسم t-string.
name = "Salma"
score = 87
print(t"""
Student: {name}
Score: {score}
Status: {"Pass" if score >= 60 else "Fail"}
""")
الإخراج:
Student: Salma
Score: 87
Status: Pass
الفرق هنا واضح. لم نعد نحتاج إلى كسر الأسطر يدويًا أو تكرار f""
، وتمكنا من كتابة النصوص بشكل طبيعي كما نكتب أي قالب HTML أو Markdown مع الحفاظ على ديناميكية المحتوى.
الجانب | f-string | t-string |
---|---|---|
تم تقديمه في | Python 3.6 | Python 3.14 |
دعم متعدد الأسطر | جزئي ومعقد | كامل ومرن |
سهولة القراءة | جيدة في السطر الواحد فقط | ممتازة خاصة للنصوص الكبيرة |
قابلية تضمين التعبيرات | نعم | نعم بنفس الطريقة |
الاستخدام في القوالب النصية | غير مريح | مريح جداً |
title = "Hello"
body = "Welcome to my site"
print(t"""
<html>
<head><title>{title}</title></head>
<body>{body}</body>
</html>
""")
username = "admin"
last_login = "2025-07-01"
print(t"""
### User Report
- **Username**: {username}
- **Last Login**: {last_login}
""")
recipient = "Ahmed"
message = "Your order has been shipped!"
print(t"""
Dear {recipient},
{message}
Thanks,
Support Team
""")
حتى تاريخ كتابة هذا المقال، t-strings متاحة فقط في Python 3.14 وما بعده. أي محاولة لاستخدام t"""..."""
في الإصدارات الأقدم ستؤدي إلى خطأ.
للتجربة، يمكنك تحميل Python 3.14 بمجرد صدوره رسميًا أو تجربته من خلال نسخة تجريبية (Alpha أو Beta) إن كنت مطورًا مهتمًا بالميزات الجديدة.
الحرف t
ليس له معنى جديد، بل هو مجرد رمز يفعل ميزة دعم f-strings متعددة الأسطر بطريقة واضحة.
يمكن استخدام أي نوع من التعبيرات داخل {}
تمامًا كما في f-strings.
t-strings ليست نوعًا جديدًا من الكائنات النصية، بل هي فقط طريقة جديدة للكتابة.
استخدم f-string عند كتابة سلاسل قصيرة أو عند الحاجة إلى التعبير عن قيمة واحدة داخل جملة.
استخدم t-string عندما:
تكون السلسلة النصية متعددة الأسطر.
تكتب قوالب HTML، JSON، Markdown.
تحتاج إلى وضوح في التنسيق.
f-strings غيرت قواعد اللعبة في تنسيق السلاسل النصية في Python، لكنها لم تكن مثالية في جميع الحالات، خاصة النصوص متعددة الأسطر. هنا جاءت t-strings كحل عملي وفعّال في Python 3.14، لتُسهل كتابة الكود وتُحسن من قراءته، خاصة في السيناريوهات المعتمدة على القوالب النصية أو الإخراج الديناميكي.
ومع استمرار تطور بايثون، من المؤكد أننا سنشهد المزيد من الميزات التي تهدف إلى تحسين الإنتاجية وتقليل التعقيد.
شرح مبسط وواضح للفرق بين f-strings وt-strings في Python، مع أمثلة عملية توضح الفروقات وأفضل سيناريوهات الاستخدام لكل منهما. تعرف على ميزة t-strings القادمة في Python 3.14 ولماذا تستحق انتباهك كمطور.
مساحة اعلانية
الحاجة إلى تقليل استهلاك الذاكرة (الرام)
المكتبة في لغة البرمجة هي مجموعة من الأوامر البرمجية المجهزة مسبقا لتنفيذ مهام محددة، تمكنك هذه المكاتب من التعامل معها ضمن مشروعك.
numpy, requests, re
المكتبات في بايثون هي مجموعات من الوحدات والحزم التي توفر أكواد مكتوبة مسبقًا لتنفيذ مهام مختلفة. تساعد في تبسيط عملية البرمجة من خلال توفير دوال وفئات قابلة لإعادة الاستخدام لوظائف محددة، مثل تحليل البيانات، تعلم الآلة، تطوير الويب، والمزيد.