0Pricing
Competitive Programming Academy · درس

إخراج دفعي بالطريقة الصحيحة

التخزين المؤقت في قائمة واستخدام join للطباعة بسرعة

إخراج دفعي بالطريقة الصحيحة درس مجاني في Competitive Programming Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Competitive Programming Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.

قد يكون الإخراج بطيئًا أيضًا

كما هو الحال مع القراءة، تهم الكتابة أيضًا. فاستدعاء print() آلاف المرات يكرر التفريغ، وقد يستهلك بهدوء الوقت المحدد.

اجمعوا النتائج ثم اطبعوها

الحل هو جمع إجاباتكم في قائمة أولًا، ثم إرسالها دفعة واحدة في عملية كتابة واحدة في النهاية.

out = []

أضيفوا كل إجابة

داخل الحلقة، أضيفوا كل نتيجة إلى القائمة باستخدام append بدلًا من طباعتها فورًا.

out.append(str(answer))

سلاسل نصية فقط، من فضلكم

تعمل join على النصوص، لذا حوّلوا الأرقام إلى سلاسل نصية قبل تخزينها، أو حوّلوها عند استخدام join.

out.append(str(x))

اجمعوها في كتلة واحدة

الصقوا القائمة معًا باستخدام join، واستعملوا محرف سطر جديد حتى تظهر كل إجابة في سطرها الخاص.

result = "\n".join(out)

اطبعوها كلها دفعة واحدة

يرسل print(result) الآن كل إجابة دفعة واحدة، وهو أسرع بكثير من إجراء عمليات طباعة صغيرة كثيرة.

print("\n".join(out))

تجاوزوا str باستخدام مولّد

يمكنكم التحويل أثناء التنفيذ: مرّروا مولّدًا من استدعاءات str() مباشرةً إلى join، من دون حاجة إلى خطوة منفصلة.

print("\n".join(str(x) for x in out))

إخراج مفصول بمسافات

هل تحتاجون إلى القيم في سطر واحد؟ استخدموا مسافة بدلًا من محرف سطر جديد عند إجراء join، لتظهر القيم جنبًا إلى جنب.

print(" ".join(map(str, row)))

استخدموا sys.stdout لمزيد من السرعة

للحصول على أسرع إخراج ممكن، اكتبوا مباشرةً باستخدام sys.stdout.write، الذي يتجاوز تنسيق print().

import sys
sys.stdout.write(result)

تذكّروا محرف السطر الجديد في النهاية

لا يضيف sys.stdout.write فاصل سطر، لذا أضيفوا محرف سطر جديد بأنفسكم إذا كانت منصة التحكيم تتوقعه.

sys.stdout.write(result + "\n")

متى تكون عمليات الطباعة القليلة مناسبة

إذا كنتم تطبعون سطرًا أو سطرين فقط، فإن print() العادي مناسب. استخدموا التجميع فقط عندما يكون عدد الإجابات كبيرًا.

تحقق سريع

لماذا نهتم بالتخزين المؤقت للإخراج؟

مراجعة: تجميع الإخراج

تعلّمتم تخزين الإجابات مؤقتًا في قائمة، ثم إخراجها باستخدام join وprint مرة واحدة. الفكرة نفسها كالقراءة السريعة، لكن مطبّقة على جانب الكتابة. 🖨️

الأسئلة الشائعة

هل درس «إخراج دفعي بالطريقة الصحيحة» مجاني؟

نعم — نص درس «إخراج دفعي بالطريقة الصحيحة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Competitive Programming Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.

ماذا ستتعلم في «إخراج دفعي بالطريقة الصحيحة»؟

التخزين المؤقت في قائمة واستخدام join للطباعة بسرعة تتمرن على Competitive Programming Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Competitive Programming Academy؟

لا تُشترط خبرة سابقة. Competitive Programming Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «إخراج دفعي بالطريقة الصحيحة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Competitive Programming Academy هذا؟

نعم. كل درس في Competitive Programming Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مواجهة input() وsys.stdin
  2. تحليل أعداد كثيرة في سطر واحد
  3. إخراج دفعي بالطريقة الصحيحة
  4. قراءة N سطرًا والحالات الطرفية
← العودة إلى Competitive Programming Academy