شارك المقالة

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

التجهيز والتشغيل

استخدم Python 3.9 أو أحدث واحفظ المثال في ملف مستقل خارج مجلد مكتبات Python.

python lesson_25556.py

فواصل الآلاف عبر f-string

يعرض النمط :,d عددًا صحيحًا بفاصلة بين مجموعات الآلاف، مع الاحتفاظ بالإشارة السالبة عند الحاجة. تتحقق grouped_integer من النوع فلا تحول قيمة عشرية إلى عدد صحيح وتفقد الكسر بصمت. تكون 999 دون فاصلة و1000 على هيئة 1,000، والعدد الكبير في المثال 4,369,496,547. الناتج سلسلة نصية للعرض، وليس عددًا جديدًا يمكنك جمعه حسابيًا دون تحويل مناسب.

الأجزاء العشرية وDecimal

تحول format_decimal نص الإدخال إلى Decimal وتعرض منزلتين عشريتين عبر :,.2f. يرفض المثال القيم غير المحدودة مثل NaN، ولا يخفي خطأ نص غير رقمي بتحويله إلى صفر. التنسيق قد يقرب القيمة إلى عدد المنازل المحدد؛ إذا كانت بياناتك تتطلب سياسة تقريب معينة فحددها بدل الاعتماد على شكل العرض وحده. حفظ القيمة الأصلية منفصلًا عن النص المنسق يمنع تكرار التقريب عند كل خطوة في المعالجة.

المثال البرمجي الكامل

from decimal import Decimal

def grouped_integer(number):
    if type(number) is not int:
        raise TypeError("Use an integer")
    return f"{number:,d}"

def format_decimal(text):
    value = Decimal(text)
    if not value.is_finite():
        raise ValueError("Use a finite decimal")
    return f"{value:,.2f}"

if __name__ == "__main__":
    print(grouped_integer(4369496547))
    print(grouped_integer(-1000))
    print(format_decimal("1234.5"))
    values = [1, 2, 3, 4]
    print("Reversed copy:", values[::-1], "Original:", values)
    print("**geecoders**".strip("*"))
    print("report.txt".removesuffix(".txt"))
    print("prefix_name".removeprefix("prefix_"))

الفاصلة ليست إعداد لغة شاملًا

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

Slicing وعكس نسخة من القائمة

تعيد values[::-1] قائمة معكوسة جديدة وتترك الأصل كما هو، بينما reverse تعدل القائمة الموجودة ولا تعيد القائمة كناتج. لا تستخدم إشارة خطوة غامضة ما دام -1 توضح الاتجاه. تعمل شرائح النصوص على وحدات Python النصية، ولا تضمن المحافظة على تجميع بصري مثل حرف مع تشكيل عند عكس نص عربي. المثال يعكس قائمة أعداد حتى يبقى معنى الترتيب واضحًا دون افتراض معالجة لغوية.

strip تحذف مجموعة محارف من الأطراف

تزيل strip("*") النجوم المتتالية من البداية والنهاية، لكنها لا تحذف النجوم من منتصف النص. وإذا مررت عدة محارف فهي مجموعة محارف مسموح إزالتها، لا كلمة كاملة يجب مطابقتها. لذلك تختلف lstrip("pre") عن removeprefix("pre"). تستخدم removesuffix لإزالة لاحقة بعينها إن كانت موجودة، دون قضم حروف أخرى من نهاية اسم الملف. تتوفر دالتا إزالة البادئة واللاحقة في Python 3.9 فأحدث.

نتائج التشغيل وحالات الفحص

شغل البرنامج لتجد العدد الكبير بفواصل، والعدد السالب مع إشارته، و1234.5 مع منزلتين. تحقق أن القائمة الأصلية بقيت مرتبة بعد عرض النسخة المعكوسة، وأن report.txt تفقد اللاحقة المطلوبة فقط. جرّب نصًا لا يحتوي البادئة أو اللاحقة؛ يجب أن يبقى كما هو. لا تعالج ملفات فعلية بإزالة امتداداتها حتى تنتهي من تجربة سلاسل نصية بسيطة وفهم ما ستنتجه الدالة.

تمارين لتفادي الأخطاء الخفية

اختبر الصفر و999 و1000 ومضاعف ألف وعددًا سالبًا وقيمة ذات أكثر من منزلتين عشريتين. ثم جرب اسمًا ينتهي بحرف من مجموعة strip لكنه لا يملك اللاحقة التي تقصد حذفها، وقارن النتيجتين. ميز بين نسخة البيانات والنص المعروض في كل اختبار. عند إنشاء تقرير أكبر اجمع قواعد التنسيق في دالة واحدة بدل تكرار بناء الفواصل في مواضع مختلفة، حتى لا تختلف صيغة العدد نفسه بين جدولين. وثق صيغة العرض التي يطلبها التقرير حتى لا تختلط الفاصلة العشرية بفاصل الآلاف عند قراءة النتيجة لاحقًا.

المراجع

تنسيق الإخراج في Python

الصور والفيديو من الشرح السابق

الكود النصي أعلاه هو النسخة المصححة؛ قد تختلف المواد المرئية السابقة في أسماء المتغيرات أو طريقة التشغيل.

كيفية طباعة الlist بشكل عكسي باستخدام لغة بايثون ! كيفية وضع comma بين كل ثلاث عناصر في الكلمة باستخدام لغة بايثون شرح استخدام اوامر strip في لغة بايثون كيفية معرفة عدد تكرار كلمة معينه داخل لغة بايثون استخدام in و == في لغة بايثون
شاهد أيضًا
مقالات ذات صلة
🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع