النصوص
يتم إنشاء النص بعلامتي التنصيص " بين حروفه على هذا النحو:
الإشارة لجزء من النص
النص تسلسل من الأحرف، لكل واحد منها موضعه من غيره:
- الأول في الموضع صفر
0 - الأخير في الموضع
n-1(بعدد الأحرف ناقص 1)
ويمكن الوصول إلى حرف فيه برقم موضعه هكذا:
استخراج جزء من النص
وطرق الإشارة لاقتطاع جزء من النص ممكنة أيضًا كما يلي (تأملها جيِّدًا مع النظر للصورة في الأعلى):
حد البداية مشمول، وحد النهاية غير مشمول، والعدد الثالث هو مقدار الخطوة. مثلًا، [1:5:2] يقرأ الموضعين 1 و3. إذا تجاوز حد النهاية طول النص، يتوقف التقطيع عند نهايته؛ أما إذا تساوى الحدان، فالناتج نص فارغ:
الاستبدال
لاستبدال جزء من النص، نستخدم طريقة .replace():
تعيد str.replace نصًا جديدًا، ولا تغيّر النص الأصلي. لذلك نعيّن العائد لـ s إذا أردنا استعماله بدل القيمة السابقة.
وللإزالة من البداية والنهاية: str.removeprefix و str.removesuffix. تزيلان المقطع من الطرف المحدد فقط، ولا تزيلان ظهوره داخل النص.
تغيير حالة الأحرف
تعيد str.upper نسخة بأحرف كبيرة، وتعـيد str.lower نسخة بأحرف صغيرة:
النواتج REPORT ثم report ثم Report؛ تبقى قيمة label الأصلية كما هي.
إزالة الفراغات في الأطراف
كما لدينا علميات .strip() لإزالة الفراغات من بداية ونهاية النص.
البحث والمطابقة
وكذلك لدينا عمليات البحث:
- التحقق من البدء والنهاية وما بينهما:
.startswith(prefix)و.endswith(suffix)أوsub in stringوهي أعم. - لمعرفة موضع أول ظهور لسلسلة معيَّنة من الأحرف داخل النص
.find()
فصل النص
يمكن فصل النص إلى قائمة بأجزائه؛ بناءً على جزء فاصل معيَّن.
ففي هذا المثال: نفصل النص عند كل مسافة فيه:
وهذه العلامة [] هي مجموعة قيم لكنها منفصلة. بحيث يمكن تحديد كل عنصر لوحدة برقمه. ويبدأ العد في البرمجة من الصفر. وبالمثال يتضح المقال:
أو يمكن تفريق الأجزاء بعملية التعيين متعددة المتغيرات على هذا النحو:
ملاحظة: يجب أن يكون عدد المتغيرات مساويًا لعدد القيَم الناتجة من الفصل.
ويمكن اختيار الجزء الفاصل على بتعيينه كمعطى لدالة الفصل .split(separator).
وفي هذا المثال نفصل بعلامة الفاصلة , أجزاء النص:
لاحظ أن -1 ترمز للقيمة الأخيرة في القائمة.
تفسير الأرقام
تفسير الأرقام المكتوبة نصًّا تكثر الحاجة إليه خصوصًا عند قراءة ملفات أو التعامل مع بيانات من المستخدم، إذ يكون الإدخال نصيًّا:
int(x)لتحويل نص إلى عدد صحيح.float(x)لتحويل نص إلى عدد عشري.
لاحظ ناتج عملية جمع رقمين مكتوبين كنصوص:
الواجب تحويلهما إلى أعداد أولاًً:
إخراج النص
راجع: Python f-string cheat sheets.
تعبئة النص بقيم المتغيرات
نستعرض ثلاث طرق لتعبئة النصوص بالقيم التي تحويها المتغيرات:
- الأولى: تحويل الشيء إلى نص قبل دمجه مع النص، باستعمال
str(x) - الثانية: استعمال فراغات بالقوسين المعكوفين
{}مع الإجراء.format()لاستبدالها. - الثالثة: استعمال
f-stringبأن تضع الحرفfقبل علامة التنصيص الأولى، ليقبل النص وضع القيم مباشرة داخل الأقواس المعكوفة{}.
تنسيق الأرقام
فاصل الآلاف
لاحظ إضافة الفاصلة العشرية , بعد العلامة : في جملة الطباعة الثانية:
الترميز العلمي
لاحظ إضافة .2e بعد النقطتين : حيث يخرجها بالصيغة العلمية (Scientific Notation) وتكتب بعدد:
- مضروب بعشرة مرفوعة لقوة موجبة (
+) إن كان الرقم بالآحاد أو العشرات أو الألوف ..إلخ - وإما مضروب بعشرة مرفوعة لقوة سالبة (
-) إن كان الرقم بالجزء من عشرة أو من مئة أو من ألف ..إلخ
فهذا المثال يعني أن العدد: "1 مضروب في عشرة أس سالب 5".
الأعداد العشرية
وجبر العدد العشري بعدد المنازل بعد الفاصلة يتم بالاختصار .xf حيث تكون x عدد الفواصل كما في المثال التالي:
مثال: تنسيق المقادير المالية
ويمكن دمج مجموعة محددات للتنسيق بعد علامة : لتكون مثلاً عشريَّة وتُظهر فواصل الألوف معًا:
القالب
كثيرًا ما نحتاج لصياغة البيانات بقالب معيَّن، حتى يُرسَل ويفسَّر في الجهة المقابلة من برنامج آخر باعتبار نفس القالب، فتسهل قراءته بهذا الوجه.
ومن ذلك مثلاً رسائل البريد الإلكتروني حيث تكتب:
فهذا القالب يُمكن ملؤه بحسب المرسل والمرسل إليه، وذلك على النحو التالي:
فإذا ما طبعنا هذا النص فسيظهر أن المتغير الآن يحتفظ بنسخة تمَّ تعبئة القالب فيه بالقيَم المعطاة: