الفصل 03

الرؤية عبر print، والتوضيح عبر التعليقات

كيف تطبع دالة print عدة قيم معاً، وكيف يغيرها sep و end، ولماذا توجد التعليقات — أداتك الأولى لاستكشاف ما يجري داخل البرنامج.

20 دقيقةPython 3.12
  1. 1المشكلة
  2. 2الفهم
  3. 3أمثلة محلولة
  4. 4التوقع
  5. 5التطبيق
  6. 6التحدي

المشكلة التي نقوم بحلها

كتبت برنامجاً وقمت بتشغيله. لكن الطرفية لم تظهر أي شيء وظلت صامتة.

هل نجح البرنامج؟ هل توقف في المنتصف؟ ما هي النتيجة التي وصل إليها داخلياً؟ لا توجد طريقة لمعرفة ذلك بمجرد النظر، لأن الحاسوب لا يعرض شيئاً من تلقاء نفسه — كل ما ترغب في رؤيته، يجب أن تطلبه بصراحة.

دالة print هي وسيلتك للطلب. في البداية هي نافذتك الوحيدة على ما يجري: أين وصل البرنامج، وما هي القيم التي تحملها المتغيرات، وما الذي أنتجته العمليات الحسابية. حتى المطورون المحترفون يستخدمون print مرات عديدة يومياً للتأكد من تدفق البيانات أثناء البرمجة.

بنهاية هذه المهمة ستكون قادراً على

  • طباعة عدة قيم في استدعاء واحد والتحكم في المسافات بينها
  • تخصيص شكل المخرجات باستخدام وسيطي sep و end
  • التمييز بين النصوص والأرقام — ولماذا ناتج "2" + "3" يختلف عن 2 + 3
  • كتابة التعليقات (Comments) ومعرفة متى يكون التعليق مفيداً ومجدياً

المتطلبات المسبقة: الطرفية، المجلدات، ومشروعك الأول.


دالة print تقبل أكثر من قيمة

افصل بين القيم بفواصل (commas)، وستقوم print بكتابتها جميعاً في سطر واحد:

python
print("Order", 7, "confirmed")
text
Order 7 confirmed

لاحظ أنك لم تكتب مسافة بين الكلمات، ومع ذلك ظهرت المسافات تلقائياً. تضع دالة print مسافة واحدة افتراضية بين كل قيمتين مفصولتين بفاصلة.

وفي نهاية كل استدعاء، تنتقل تلقائياً إلى سطر جديد:

python
print("line one")
print("line two")
text
line one
line two

واستدعاء print() بدون أي وسائط يطبع سطراً فارغاً — وهي أسهل طريقة لتقسيم المخرجات الطويلة.

الوسيط sep — الفاصل المخصص بين القيم

إذا كنت لا تريد المسافة الافتراضية، يمكنك تغييرها:

python
print("2026", "09", "10", sep="-")
print("home", "user", "notes.txt", sep="/")
print("a", "b", "c", sep="")
text
2026-09-10
home/user/notes.txt
abc

الوسيط end — ماذا يحدث في نهاية السطر

افتراضياً تُنهي print السطر بالانتقال للسطر التالي. يمكنك تعديل ذلك عبر end:

python
print("Loading", end="")
print(".", end="")
print(".", end="")
print(". done")
text
Loading... done

مثال تطبيقي متكامل

python
# Report generator
print("=" * 24)
print("SALES REPORT")
print("=" * 24)

print("Items sold:", 3 + 5 + 2)
print("Revenue:", 3 * 120 + 5 * 90 + 2 * 250)

print()
print("Prepared by", "Rafi", sep=": ")
text
========================
SALES REPORT
========================
Items sold: 10
Revenue: 1310

Prepared by: Rafi

لاحظ التعبير "=" * 24. ضرب النص في رقم يجعل بايثون يكرره بعدد مرات ذلك الرقم، دون الحاجة لكتابة علامة التساوي 24 مرة يدوياً.


الأخطاء الشائعة وحلولها

خطأ SyntaxError: unterminated string literal تم فتح علامة تنصيص ولم يتم إغلاقها بشكل سليم. مثل print("Hello).

الحاجة لكتابة علامة تنصيص داخل النص استخدم نوعاً في الخارج ونوعاً آخر في الداخل: print("It's working") أو print('She said "yes"').

تمرير قيمة لـ sep أو end بدون علامات تنصيص السطر print("a", "b", sep=-) لن يعمل لأن sep تتوقع نصاً: sep="-".