الطباعة والإخراج (Print Output)
الطباعة هي الطريقة الأساسية التي يتحدث بها برنامجك معك. سواء كنت تعرض نتائج حسابية، رسائل خطأ، أو واجهة مستخدم نصية، فإن دالة print() هي الأداة التي ستستخدمها آلاف المرات.
في هذا الدرس، لن نكتفي بالطباعة الأساسية، بل سنتعمق في كيفية تنسيق المخرجات بشكل احترافي وجميل باستخدام أحدث تقنيات بايثون مثل f-strings.
1. أساسيات الطباعة
يمكنك طباعة النصوص، الأرقام، المتغيرات، وحتى العمليات الحسابية مباشرة.
print("مرحباً بالعالم!") # طباعة نص
print(100) # طباعة رقم
print(5 + 3) # طباعة نتيجة عملية حسابية
name = "سارة"
print(name) # طباعة متغير
# طباعة عدة قيم مفصولة بفاصلة (تضيف مسافة تلقائياً)
print("الاسم:", name, "| العمر:", 25)
2. التحكم في الفاصل (sep) والنهاية (end)
دالة print() تحتوي على معلمات اختيارية قوية:
sep: ما يتم وضعه بين القيم (الافتراضي مسافة).end: ما يتم طباعته في النهاية (الافتراضي سطر جديد\n).
# تغيير الفاصل
print("أحمد", "محمد", "علي", sep=" - ")
print("user", "domain.com", sep="@")
# الطباعة في نفس السطر (تغيير end)
print("جاري التحميل", end="...")
print("تم!") # سيطبع بجانب السطر السابق
# طباعة بدون سطر جديد في النهاية
for i in range(1, 4):
print(i, end=" ")
3. تنسيق النصوص (f-strings) 🚀
هذه هي الطريقة الأحدث والأفضل في بايثون (منذ إصدار 3.6). تضع حرف f قبل النص، ثم تضع المتغيرات داخل أقواس {}.
name = "خالد"
score = 95.5678
# طريقة f-string
print(f"الطالب {name} حصل على {score}")
# تنسيق الأرقام (منزلتين عشريتين)
print(f"الدرجة: {score:.2f}")
# عمليات حسابية داخل الأقواس
a = 5
b = 10
print(f"المجموع: {a + b}")
print(f"هل {a} أكبر من {b}؟ {a > b}")
# تنسيق المسافات (لعمل جداول)
print(f"{'الاسم':<10} | {'الدرجة':>6}")
print("-" * 20)
print(f"{'علي':<10} | {90:>6}")
print(f"{'فاطمة':<10} | {100:>6}")
4. رموز الهروب (Escape Characters)
تستخدم لطباعة أحرف خاصة لا يمكن كتابتها مباشرة.
| الرمز | الوصف |
|---|---|
\n |
سطر جديد (New Line) |
\t |
مسافة بادئة (Tab) |
\" |
علامة تنصيص مزدوجة |
\' |
علامة تنصيص مفردة |
\\ |
طباعة الشرطة المائلة نفسها |
print("السطر الأول\nالسطر الثاني")
print("الاسم:\tمحمد")
print("قال: \"بايثون لغة رائعة\"")
print("المسار: C:\\Windows\\System32")
5. تطبيق عملي: طباعة فاتورة
item1 = "قهوة"
price1 = 15.5
item2 = "كعكة"
price2 = 20.0
total = price1 + price2
print("=" * 30)
print(f"{'فاتورة مشتريات':^30}") # توسيط النص
print("=" * 30)
print(f"{'الصنف':<20} {'السعر':>8}")
print("-" * 30)
print(f"{item1:<20} {price1:>8.2f}")
print(f"{item2:<20} {price2:>8.2f}")
print("-" * 30)
print(f"{'الإجمالي':<20} {total:>8.2f}")
print("=" * 30)
print(f"{'شكراً لزيارتكم':^30}")
ملخص الدرس
- استخدم
f-stringsلتنسيق النصوص، فهي الأسهل والأسرع. - استخدم
sepلتغيير الفاصل بين القيم، وendللتحكم بنهاية السطر. - استخدم
\nللنزول لسطر جديد و\tللمسافات.
الخطوة التالية
ماذا لو حدث خطأ في البرنامج؟ كيف نمنع توقفه؟
الدرس التالي: معالجة الأخطاء (Error Handling)