كيف تستخدم مترجم Python عبر الإنترنت
- اكتب شيفرتك أو الصقها في المحرر. تبدأ الصفحة بمثال قصير، ويعيده زر إعادة ضبط المثال في أي وقت.
- إذا كان برنامجك يستدعي
input()، فاكتب الإجابات في مربع المُدخلات (stdin) أسفل المخرجات، سطرًا واحدًا لكل استدعاءinput(). - اضغط تشغيل أو استخدم Ctrl + Enter (⌘ + Enter على Mac).
- اقرأ النتيجة في لوحة المخرجات. ويُبرَز كل ما يُطبع إلى
stderr، بما في ذلك تتبّعات الأخطاء (tracebacks)، على أنه خطأ. - اختر الحدّ الزمني: 5 أو 15 أو 60 ثانية. إذا استغرق السكربت وقتًا أطول (بسبب حلقة
while True:غير مقصودة مثلًا)، يُوقَف تلقائيًا. ويمكنك أيضًا الضغط على إيقاف في أي لحظة.
في التشغيل الأول تُنزَّل بيئة تشغيل Python، وحجمها نحو 10 MB. يحتفظ بها متصفحك في ذاكرته المؤقتة، فتبدأ مرات التشغيل اللاحقة أسرع بكثير. استخدم نسخ أو main.py لحفظ السكربت.
لا تغادر شيفرتك جهازك أبدًا. تعمل Python داخل متصفحك في Web Worker، فلا يُرفع أي شيء إلى خوادمنا ولا يُخزَّن عليها. ويتذكر المحرر آخر شيفرة كتبتها في التخزين المحلي لمتصفحك، ولا يحفظها في أي مكان آخر.
ما الذي يدعمه مترجم Python؟
يستخدم المترجم Python 3.12 عبر Pyodide 0.26، وهو مفسّر CPython مترجَم إلى WebAssembly. إنه CPython حقيقي، وليس محاكاة شبيهة بـPython، لذا تتصرف اللغة تمامًا كما تتصرف على حاسوبك.
- المكتبة القياسية:
mathوcollectionsوitertoolsوdatetimeوjsonوreوdataclassesوstatisticsوغيرها. - تحميل الحزم تلقائيًا: عندما تستورد شيفرتك حزمة يوفّرها Pyodide، مثل NumPy أو pandas، تُنزَّل فورًا عند الحاجة. وتتوفر حزم كثيرة مكتوبة بـPython خالصة وحزم علمية.
- الإدخال القياسي عبر
input()وsys.stdin، ويُغذّى من مربع stdin. async/await: تعمل الشيفرة باستخدامrunPythonAsync، لذا يعملawaitفي المستوى الأعلى من الشيفرة.
قيود ينبغي مراعاتها:
- لا مقابس شبكة. لا تستطيع وحدات مثل
socketوurllib.requestوrequestsفتح اتصالات من هنا. - لا ملفات دائمة. يمكنك إنشاء الملفات وقراءتها باستخدام
open()، لكنها تبقى في الذاكرة فقط وتضيع عند إعادة تحميل الصفحة أو الضغط على «إيقاف». - لا تُعرض الرسوم البيانية. يمكن استيراد matplotlib، لكن لا يظهر أي شكل، فاطبع الأرقام أو الجداول بدلًا من ذلك.
- لا يمكن تثبيت الحزم التي تحتوي على شيفرة أصلية (native) لا يوفّرها Pyodide.
مرجع سريع لـPython
from dataclasses import dataclass
@dataclass
class Item:
name: str
price: float
cart = [Item("pen", 1.5), Item("book", 12.0)]
total = sum(i.price for i in cart)
print(f"{len(cart)} items, total {total:.2f}")
if total > 10 and cart:
print("Free shipping!")
| المهمة | الصياغة |
|---|---|
| طباعة نص منسّق | print(f"{x:.2f}") |
| قراءة سطر من المدخلات | name = input("Name? ") |
| تحويل المدخلات إلى رقم | n = int(input()) |
| استيعاب القوائم (list comprehension) | [x * 2 for x in data if x > 0] |
| المرور على قاموس | for k, v in d.items(): |
| معالجة خطأ | try: ... except ValueError as e: ... |
نصائح
- إذا طلب برنامجك مدخلات أكثر من عدد الأسطر في مربع stdin، تُطلق Python الخطأ
EOFError. أضف سطرًا لكل استدعاءinput(). - تستغرق عمليات الاستيراد الكبيرة مثل pandas بضع ثوانٍ في المرة الأولى. ويُحتسب وقت التنزيل ضمن الحدّ الزمني، فاختر 60 s للسكربتات الثقيلة.
- يبدأ كل تشغيل بمتغيرات جديدة، لكن الوحدات التي استوردتها من قبل تبقى محمَّلة، فتكون مرات التشغيل المتكررة سريعة.
- تتعامل مع مخرجات JSON؟ الصقها في منسّق JSON لتنسيقها بشكل مقروء والتحقق من صحتها.
الأسئلة الشائعة
هل هذا مفسّر Python حقيقي؟
نعم. Pyodide هو CPython 3.12 مترجَمًا إلى WebAssembly. والصياغة والدوال المدمجة والمكتبة القياسية مطابقة لـPython على الحاسوب. وتأتي الفروق الرئيسية من العمل داخل متصفح: لا يوجد وصول إلى الشبكة ولا نظام ملفات دائم.
هل يمكنني استخدام NumPy وpandas؟
نعم. استوردهما كالمعتاد، وستُنزَّلان في أول مرة تشغّل فيها الشيفرة. وتُحمَّل بالطريقة نفسها حزم علمية وحزم Python خالصة كثيرة أخرى يوفّرها Pyodide.
كيف أعطي برنامجي مدخلات؟
اكتب القيم في مربع stdin، سطرًا واحدًا لكل استدعاء input()، بالترتيب الذي يطلبها به برنامجك. ثم اضغط «تشغيل».
لماذا يتوقف السكربت بعد 15 ثانية؟
الحدّ الزمني الافتراضية تحميك من الحلقات اللانهائية التي قد تجمّد علامة التبويب. اختر 60 s من قائمة «الحدّ الزمني» للعمليات الحسابية الأطول.
هل يمكنني تشغيل لغات أخرى أيضًا؟
نعم. جرّب مترجم JavaScript عبر الإنترنت أو تصفّح جميع أدوات المطورين المجانية.
آخر تحديث