أسئلة مقابلات Python Fundamentals في Python
10 سؤال عن Python Fundamentals من مسار Python. اقرأ الإجابة المختصرة لكل سؤال هنا، وافتح السؤال للشرح الكامل والأمثلة والأخطاء الشائعة والمصادر.
- مبتدئ
ماذا يحدث للكود في Python منذ لحظة تشغيله؟
يقرأ CPython ملف المصدر ويحوّله إلى bytecode (ويخزنه غالبًا في __pycache__ كملفات .pyc)، ثم ينفذ الـ interpreter هذا الـ bytecode تعليمةً تعليمة داخل الآلة الافتراضية.
اقرأ الشرح الكامل - مبتدئ
ما الفرق بين الكائنات mutable و immutable في Python؟
الكائن mutable يمكن تعديل محتواه في مكانه (مثل list و dict و set)، أما immutable فلا يتغير بعد إنشائه (مثل int و str و tuple و frozenset)، وأي "تعديل" عليه ينشئ كائنًا جديدًا.
اقرأ الشرح الكامل - مبتدئ
متى تختار list أو tuple أو set أو dict؟
استخدم list لتسلسل مرتب قابل للتعديل، و tuple لسجل ثابت الطول والمعنى، و set لفحص العضوية السريع ومنع التكرار، و dict لربط مفتاح بقيمة مع بحث سريع.
اقرأ الشرح الكامل - مبتدئ
ما استخدام list و dict comprehensions ومتى تصبح عبئًا على القراءة؟
هي صيغة مختصرة لبناء collection جديدة من iterable مع تحويل أو تصفية بسيطة، وتصبح عبئًا عندما تتداخل الحلقات أو تكثر الشروط أو تحتوي آثارًا جانبية.
اقرأ الشرح الكامل - مبتدئ
ما الفرق بين is و == في Python؟
== يقارن القيم عبر __eq__، بينما is يتحقق من أن الاسمين يشيران إلى نفس الكائن في الذاكرة (نفس الهوية id).
اقرأ الشرح الكامل - مبتدئ
كيف تحدد Python أن قيمة ما truthy أو falsy؟
يُعد الكائن falsy إذا عرّف __bool__ تعيد False، أو __len__ تعيد صفرًا؛ ومن القيم falsy المدمجة None و False و 0 و 0.0 والنص الفارغ والمجموعات الفارغة. كل ما عدا ذلك truthy.
اقرأ الشرح الكامل - مبتدئ
ما فائدة unpacking و starred expressions؟
يسمح unpacking بتوزيع عناصر iterable على عدة أسماء في سطر واحد، والنجمة * تلتقط عددًا متغيرًا من العناصر في list، كما يُستخدم * و ** لفك القيم عند الاستدعاء أو دمج المجموعات.
اقرأ الشرح الكامل - مبتدئ
ماذا يفعل slicing في list و str وهل ينتج نسخة؟
في list و str و tuple يُنشئ slicing كائنًا جديدًا يحتوي الجزء المطلوب، لكنه نسخ سطحي؛ العناصر الداخلية القابلة للتغيير تظل مشتركة.
اقرأ الشرح الكامل - متوسط
ما الفرق بين module و package وكيف يعمل import؟
الـ module ملف Python واحد، والـ package مجلد يجمع modules (عادةً مع __init__.py). عند import تبحث Python في sys.path، وتنفذ الموديول مرة واحدة، ثم تخزنه في sys.modules لتعيد استخدامه في أي import لاحق.
اقرأ الشرح الكامل - مبتدئ
لماذا نستخدم if __name__ == "__main__"؟
لتمييز تشغيل الملف مباشرة عن استيراده كموديول؛ فعند التشغيل المباشر تكون قيمة __name__ هي "__main__"، وعند الاستيراد تكون اسم الموديول.
اقرأ الشرح الكامل