50 سوال و جواب دانش در زبان پایتون
1. پایتون چیست؟
– پایتون یک زبان برنامهنویسی سطح بالا و تفسیری با معناشناسی پویاست که به خاطر سادگی در یادگیری و خوانایی آن معروف است.
2. ویژگیهای کلیدی پایتون چیست؟
– ویژگیهای کلیدی پایتون شامل نحو ساده و خوانا، تایپ پویا، مدیریت حافظه، و یک کتابخانه استاندارد جامع است.
3. چگونه حافظه در پایتون مدیریت میشود؟
– مدیریت حافظه در پایتون توسط مدیر حافظه پایتون انجام میشود. اشیا و ساختارهای داده در یک heap خصوصی ذخیره میشوند و جمعآوری زبالهها حافظههای استفاده نشده را بازیابی میکند.
4. تزئینگرها (Decorators) در پایتون چیست؟
– تزئینگرها یک الگوی طراحی در پایتون هستند که به کاربران اجازه میدهد رفتار یک تابع یا کلاس را تغییر دهند.
5. PEP 8 چیست؟
– PEP 8 یک پیشنهاد بهبود پایتون است که دستورالعملها و بهترین شیوهها برای نوشتن کد پایتون را ارائه میدهد.
6. تابع lambda در پایتون چیست؟
– یک تابع lambda یک تابع ناشناس کوچک است که میتواند هر تعداد آرگومان بگیرد، اما فقط یک عبارت میتواند داشته باشد.
7. تفاوت بین لیست و تاپل چیست؟
– تفاوت اصلی این است که لیستها قابل تغییر هستند در حالی که تاپلها غیرقابل تغییرند.
8. پایتون چگونه مدیریت آزادسازی حافظه را انجام میدهد؟
– پایتون دارای یک جمعکننده زباله داخلی است که تمام حافظههای استفاده نشده را بازیابی میکند تا دوباره در فضای heap در دسترس قرار گیرد.
بیشتر بخوانید: آموزش پایتون رایگان
9. Slicing در پایتون چیست؟
– Slicing در پایتون مکانیزمی است برای انتخاب محدودهای از آیتمها از انواع دادههای دنبالهای مانند لیست، تاپل، رشته و غیره.
10. ماژولهای پایتون چیست؟
– ماژولهای پایتون فایلهای .py هستند که شامل کد پایتون میباشند. هر فایل پایتونی میتواند به عنوان یک ماژول مورد استفاده قرار گیرد.
11. تفاوت بین آرایههای پایتون و لیستها چیست؟
– آرایهها فقط میتوانند عناصری از نوع داده یکسان را شامل شوند، در حالی که لیستها میتوانند عناصری با نوع دادههای مختلف را شامل شوند.
12. تفاوت بین deepcopy و copy چیست؟
– deepcopy یک شیء ترکیبی جدید ایجاد میکند و سپس به صورت بازگشتی، کپیهایی از اشیاء موجود در اصل را در آن قرار میدهد. copy یک شیء ترکیبی جدید ایجاد میکند و سپس ارجاعات را به اشیاء موجود در اصل وارد آن میکند.
13. فضای نام (Namespace) در پایتون چیست؟
– فضای نام سیستمی برای نامگذاری است که تضمین میکند نامها منحصر به فرد باشند تا از برخوردهای نامگذاری جلوگیری شود.
14. دایرهالمعارف (Dictionary) در پایتون چیست؟
– یک دایرهالمعارف در پایتون یک مجموعه نامرتب از مقادیر داده است که برای ذخیره مقادیر داده مانند یک نقشه استفاده میشود.
15. تفاوت بین xrange و range چیست؟
– xrange یک شیء xrange را برمیگرداند در حالی که range یک لیست را برمیگرداند و xrange از همان محل حافظه استفاده میکند.
16. Pickling و Unpickling چیست؟
– Pickling فرآیندی است که طی آن سلسله مراتب اشیاء پایتون به یک جریان بایت تبدیل میشود و Unpickling عمل معکوس آن است.
17. مولدها (Generators) در پایتون چیست؟
– مولدها یک روش ساده برای ایجاد تکرارگرها (Iterators) هستند. آنها یک تکرارگر تنبل برمیگردانند که میتواند درون حلقهها پیمایش شود.
18. __init__ چیست؟
– __init__ یک متد یا سازنده در پایتون است. این متد به صورت خودکار برای تخصیص حافظه زمانی که یک شیء جدید یا نمونهای از یک کلاس ایجاد میشود، فراخوانی میشود.
19. self در پایتون چیست؟
– self نمایانگر نمونهای از کلاس است و ویژگیها را با آرگومانهای داده شده مرتبط میکند.
20. __str__ چیست؟
– __str__ یک تابع داخلی در پایتون است که زمانی که توابع print() یا str() روی شیء فراخوانی میشوند، اجرا میشود.
21. تفاوت بین متدهای append() و extend() چیست؟
– append() آرگومان خود را به عنوان یک عنصر واحد به انتهای لیست اضافه میکند، در حالی که extend() هر عنصر از آرگومان خود را به لیست اضافه میکند.
22. Docstring در پایتون چیست؟
– یک Docstring یک رشته متنی است که به عنوان اولین دستور در یک ماژول، تابع، کلاس یا تعریف متد ظاهر میشود.
23. تفاوت بین متغیرهای global و local چیست؟
– متغیرهای global در کل برنامه قابل دسترسی هستند، در حالی که متغیرهای local فقط در محدوده تابعی که در آن تعریف شدهاند، قابل دسترسی هستند.
24. عبارت pass در پایتون چیست؟
– عبارت pass یک عملیات تهی (null operation) است؛ وقتی اجرا میشود، هیچ اتفاقی نمیافتد.
25. تفاوت بین == و is چیست؟
– == برابری را بررسی میکند، در حالی که is هویت (یکسان بودن) را بررسی میکند.
26. یک Session در پایتون چیست؟
– یک Session به شما امکان میدهد تا پارامترهای خاصی را در میان درخواستها حفظ کنید.
27. تفاوت بین break، continue و pass چیست؟
– break حلقه را خاتمه میدهد، continue تکرار جاری را رد میکند، و pass هیچ کاری انجام نمیدهد و به عنوان یک پرکننده عمل میکند.
28. *args و **kwargs چیست؟
– *args برای پاس دادن تعداد متغیری از آرگومانها به یک تابع استفاده میشود، **kwargs اجازه میدهد تا آرگومانهای متغیری با کلمات کلیدی به یک تابع پاس داده شود.
29. تفاوت بین isinstance() و type() چیست؟
– isinstance() بررسی میکند که آیا یک شیء نمونهای از یک کلاس یا زیرکلاس آن است، در حالی که type() نوع شیء را برمیگرداند.
30. تفاوت بین فایلهای .py و .pyc چیست؟
– فایلهای .py شامل کد منبع یک برنامه هستند، در حالی که فایلهای .pyc شامل بایتکدهایی هستند که میتوانند توسط ماشین مجازی پایتون اجرا شوند.
31. __name__ در پایتون چیست؟
– __name__ یک متغیر داخلی است که به نام ماژول جاری ارزیابی میشود.
32. متاکلاسها (Metaclasses) در پایتون چیست؟
– متاکلاسها کلاسهای کلاسهایی هستند که تعیین میکنند یک کلاس چگونه رفتار میکند.
33. Monkey Patching در پایتون چیست؟
– Monkey Patching یک تکنیک برای اضافه کردن، تغییر دادن، یا سرکوب رفتار پیشفرض یک قطعه کد در زمان اجرا است.
34. عبارت with در پایتون چیست؟
– عبارت with مدیریت استثناها را با جمعبندی وظایف آمادهسازی و پاکسازی معمول در مدیران زمینه (Context Managers) سادهتر میکند.
35. تفاوت بین staticmethod و classmethod چیست؟
– staticmethod آرگومان اول ضمنی دریافت نمیکند، در حالی که classmethod کلاس را به عنوان آرگومان اول ضمنی دریافت میکند.
36. تفاوت بین فایلهای .py و .pyw چیست؟
– فایلهای .py فایلهای منبع پایتون هستند. فایلهای .pyw فایلهای اسکریپت پایتون هستند که برای اجرا در پلتفرم ویندوز بدون باز کردن پنجره خط فرمان طراحی شدهاند.
37. تفاوت بین assert و raise چیست؟
– assert برای اهداف اشکالزدایی استفاده میشود در حالی که raise برای بالا بردن استثناها استفاده میشود.
38. تابع enumerate در پایتون چیست؟
– enumerate یک تابع داخلی است که یک شمارنده به یک iterable اضافه میکند و آن را به شکل یک شیء enumerate برمیگرداند.
39. تفاوت بین @staticmethod و @classmethod چیست؟
– @staticmethod یک متد استاتیک تعریف میکند که آرگومان ضمنی دریافت نمیکند، در حالی که @classmethod یک متد کلاس تعریف میکند که کلاس را به عنوان آرگومان اول ضمنی دریافت میکند.
40. تفاوت بین __new__ و __init__ چیست؟
– __new__ یک متد استاتیک است که برای ایجاد یک نمونه فراخوانی میشود، در حالی که __init__ سازندهای است که برای مقداردهی اولیه نمونه فراخوانی میشود.
41. تفاوت بین __getattr__ و __getattribute__ چیست؟
– __getattr__ زمانی فراخوانی میشود که جستجوی یک ویژگی، ویژگی مورد نظر را در مکانهای معمول پیدا نکرده باشد، در حالی که __getattribute__ قبل از جستجوی ویژگیهای واقعی در شیء فراخوانی میشود.
42. کلمه کلیدی global در پایتون چیست؟
– کلمه کلیدی global برای اعلام یک متغیر درون تابع به عنوان متغیر سراسری (خارج از تابع) استفاده میشود.
43. تفاوت بین __call__ و __init__ چیست؟
– __call__ به نمونهای از یک کلاس اجازه میدهد که به عنوان یک تابع فراخوانی شود، در حالی که __init__ متد سازنده برای یک کلاس است.
44. تفاوت بین __dict__ و __dir__ چیست؟
– __dict__ یک دیکشنری یا شیء نگاشت دیگر است که برای ذخیره ویژگیهای (قابل نوشتن) یک شیء استفاده میشود، در حالی که __dir__ برای لیست کردن ویژگیهای شیء استفاده میشود.
45. تابع super در پایتون چیست؟
– super برای دسترسی به متدها و ویژگیهای یک کلاس والد یا همسطح استفاده میشود.
46. تفاوت بین __str__ و __repr__ چیست؟
– __str__ برای ایجاد خروجی برای کاربر نهایی استفاده میشود در حالی که __repr__ برای اشکالزدایی و توسعه استفاده میشود. __repr__ دقیقتر از __str__ است.
47. تابع zip در پایتون چیست؟
– zip یک تابع داخلی است که یک تکرارگر از تاپلها را بر اساس شیءهای قابل پیمایش برمیگرداند.
48. آزمایشهای واحدی (Unit Tests) در پایتون چیست؟
– آزمایشهای واحدی تستهایی هستند که برای بررسی عملکرد یک بخش خاص از کد، معمولاً در سطح تابع، نوشته میشوند.
49. Global Interpreter Lock (GIL) در پایتون چیست؟
– GIL یک قفل است که دسترسی به اشیاء پایتون را محافظت میکند و از اجرای چندین نخ (Thread) به طور همزمان جلوگیری میکند.
50. Annotations (توضیحات) در توابع پایتون چیست؟
– توضیحات در توابع پایتون راهی برای ارتباط دادن بخشهای مختلف یک تابع با عبارات دلخواه پایتون در زمان کامپایل فراهم میکنند.
دیدگاهتان را بنویسید