65 سوال پرتکرار مصاحبه پایتون از مبتدی تا پیشرفته

سوالات مصاحبه پایتون از مقدماتی تا پیشرفته
تاریخ بروزرسانی : 24 بهمن 1402 | تعداد بازدید : 3157 | زمان خواندن مقاله : 20 دقیقه
پایتون،

65 مورد از مهم ترین سوالات مصاحبه پایتون با جواب کامل


یکی از اصلی ترین دغدغه های تمام برنامه نویسان در سراسر دنیا استخدام است. این عامل به تنهایی می تواند اتفاقات بزرگ و کوچک بسیاری را برای افراد رقم بزند. از انتخاب زبان برنامه نویسی گرفته تا پیاده سازی خواسته های معقول و غیر معقول کارفرما ها، همه وابسته به این واژه ترسناک، یعنی استخدام است. اما ترسناکی این واژه و اتفاقات پشت سرش تا قبل از نوشتن این مطلب و بررسی 65 مورد از مهم ترین سوالات مصاحبه پایتون بود. همه ما از سختی ها و چالش های حوزه برنامه نویسی آگاه هستیم. اما آن چیزی که نمی دانیم این است که برای به دست آوردن یک موقعیت شغلی و استخدام به عنوان یک برنامه نویس چه سوال هایی از ما می پرسند؟ 

این دغدغه و چالش حتی برای افرادی هم که سابقه کار دارند نیز وجود دارد، چرا که یک مجموعه بزرگ یا حتی کوچک می خواهند تمام داروندارشان، که همان سایتشان هست را به دست یک غریبه بدهند و از آن جایی که «جنگ اول به از صلح آخر است» همان ابتدا «گربه را دم حجله می کشند» تا خیالشان از همه جهات راحت شود که سایتشان را دست یک فرد کاردان سپرده اند. 

از آن جایی که شغل برنامه نویسی با دیگر حوزه ها تفاوت دارد، مصاحبه کاری اش نیز با دیگر مصاحبه ها متفاوت است. بیایید مصاحبه برنامه نویسی را مانند یک امتحان در نظر بگیریم و شما را نیز مانند یک دانشجوی درسخوان با شیطنت های مختص دوران دانشجویی بدانیم. شما هرچقدر هم که کتاب را خوانده باشید و به آن مسلط باشید؛ باز هم دوست دارید سوالات را پیدا کنید تا با آمادگی کامل سر آزمون حاضر شوید. ما نیز در اینجا اصلی ترین سوالات مصاحبه استخدامی پایتون را آماده کرده ایم تا با خواندن آن ها بتوانید در مصاحبه ها موفق شوید. 

آیا پایتون زبان برنامه نویسی مناسبی برای ورود به بازارکار است؟

پرتکرار ترین سوالات مصاحبه پایتون

پیش از آن که به سراغ بررسی سوالات مصاحبه برنامه نویسی پایتون برویم، بهتر است یکبار دیگر به این مسئله بپردازیم که آیا زبان برنامه نویسی پایتون گزینه مناسبی برای ورود به بازارکار است یا خیر؟ شاید خیلی از شما عزیزان هنوز به این مسئله شک داشته باشید که پایتون گزینه مناسبی برای یادگیری و ورود به بازارکار است یا خیر. برای آن که ریشه این شک و تردید را یکبار برای همیشه در دلتان بخشکانیم، باید به شما یادآوری کنیم که زبان برنامه نویسی پایتون محبوب ترین زبان برنامه نویسی در دنیا است و این محبوبیت هم در بین افراد مبتدی است و هم در بین افراد حرفه ای و کسانی که خاک برنامه نویسی را خورده اند و موهایشان را در آسیاب برنامه نویسی سفید کرده اند. 

پایتون یکی از شیرین ترین زبان های برنامه نویسی است که سینتکس آسانی دارد و یادگیری آن برای تمام سنین امکان پذیر است. این زبان برنامه نویسی همه کاره است و با یکبار یادیگیری پایتون پیشرفته می توانید به هر حوزه ای وارد شوید، البته پایتون پیشرفته 60 یا 70 درصد مسیر ورود به حوزه های مختلف است و برای تسلط 100 درصدی و ورود به عنوان یک حرفه ای باید موارد تخصصی دیگری که مربوط به آن حوزه هست را نیز بیاموزید. 

زبان پایتون به شدت مورد علاقه کمپانی های معروف و شناخته شده در دنیا است و به همین دلیل از جمله زبان هایی است که متقاضی های بسیاری دارد. درست است که افراد بسیاری به سمت این حوزه می روند اما همه آن ها رقیب شما نیستند و عده بسیار زیادی از این افراد به عنوان سیاهی لشکر پایتون شناخته می شوند. نکته اصلی و مهم قبولی در سوالات مصاحبه استخدامی پایتون نیز همین مورد است. اگر شما به پایتون مسلط باشید و در حوزه وارد شده نیز دانش کافی داشته باشید، می توانید موقعیت شغلی مورد نظرتان را در هر شرکت و مجموعه ای که بخواهید، به دست آورید.

 

آموزش پایتون

برای قبولی در سوالات مصاحبه پایتون چه میزان دانش پایتونی نیاز است؟

برای پاسخ به این سوال باید یک سوال دیگر بپرسید، اما این بار این سوال را از خودتان بپرسید که چقدر دانش پایتونی دارم؟ در پاسخ به این سوال دو حالت پیش می آید. حالت اول این که دانش پایتونی شما در حد مبتدی است و حالا حالا ها باید بدوید تا به یک پایتون کار حرفه ای تبدیل شوید. اگر در این وضعیت به سر می برید که باید صادقانه به شما بگوییم که شما مناسب استخدام به عنوان یک برنامه نویس حرفه ای نیستید و بهترین کار این است که به سراغ موقعیت های استخدام کارآموزی بروید. این موقعیت ها به شما کمک می کنند که هم کار کنید و هم بیاموزید و چه چیزی بهتر از این است؟ 

اما حالت دوم، در این حالت شما به پایتون و مشتقات آن مسلط هستید و به دنبال یک موقعیت شغلی برای استخدام یک فرد حرفه ای هستید. اگر از جمله عزیزانی هستید که در این دسته قرار می گیرند، پس باید به دنبال موقعیت شغلی هایی باشید که با میزان دانش و مهارت شما همخوانی دارد. توصیه که به تمام عزیزان مبتدی و حرفه ای داریم این است که اگر توانستید وارد یک شرکت، سازمان یا مجموعه شوید حتما آموزش دیدن را ادامه دهید و خود را محدود به همان دانش اندک نکنید. البته برای قبولی در یک مصاحبه استخدامی شما باید مهارت های دیگری را نیز بیاموزید تا بتوانید علاوه بر پاسخ صحیح به سوالات مصاحبه پایتون به گونه دیگری نیز نظر کارفرما یا مدیر منابع انسانی را به خود جلب کنید. 

مهارت هایی که می توانند در قبولی شما در مصاحبه کاری کمک کننده باشند می توان به حل مسئله، ارتباط و تعامل با دیگران، توانایی انجام کار گروهی، تمایل به یادگیری و موارد بسیاری از این دست که به مجموعه آن ها مهارت های نرم گفته می شود که در ادامه بیشتر به آن می پردازیم. البته موارد تخصصی نیز وجود دارد که در بخش بعد به آن می پردازیم. فرقی نمی کند سازمانی که به آن وارد می شوید بزرگ است یا کوچک، آنچیزی که اهمیت دارد و به بقا شما در یک سازمان کمک می کند مهارت های نرم است. حتما مقاله ای در این باره تهیه و تدوین می کنم و با شما عزیزان به اشتراک می گذارم. 

 

کتاب هاي پايتون

بيشتر بخوانيد:

14 مورد از پرفروش ترين کتاب هاي پايتون که بايد بخوانيد.

مهارت های جانبی که باعث قبولی شما در مصاحبه پایتون می شود 

درست است که شما به عنوان یک برنامه نویس پایتون برای شرکت در مصاحبه حاضر شده اید و توقع دارید که سوالات مصاحبه پایتونی باشد و نه از شاخه ها و حوزه های دیگر. این خواسته شما کاملا بر حق است و سوالات مصاحبه برنامه نویسی پایتون باید درباره پایتون باشد و نه چیز دیگری، اما لازم است به شما یادآوری کنیم که مصاحبه کاری مانند یک ماراتن است و کسی در ماراتن برنده می شود که توانایی بیشتری داشته باشد و از جنبه های مختلف نیز خودش را تقویت کرده باشد. در این بخش به شما خواهیم گفت که چه مواردی را بهتر است بیاموزید تا در کنار پاسخ دهی به سوالات مصاحبه پایتون بتوانید شانس قبولی خود در مصاحبه را بالا ببرید و حتی به سوالات مصاحبه پایتون هم مانند یک فرد حرفه ای و با تجربه دیده شوید. 

دانش و مهارت های برنامه نویسی مازاد 

یکی از اصلی ترین راه ها برای جلب نظر کارفرمایان در مصاحبه های کاری این است که مهارت های فنی  و برنامه نویسی بیشتری را بیاموزید. این که در یک مصاحبه استخدامی به سوالات مصاحبه پایتون پاسخ دهید که کار خارق العاده ای نکرده اید، چون شما به عنوان یک پایتون کار حرفه ای به آنجا رفته اید و باید به سوالات کارفرما پیرامون این زبان برنامه نویسی پاسخ دهید. اما آنچیزی که باعث شگفت زده شدن مصاحبه گر می شود، مهارت های مازادی است که شما دارید. مثلا شما به قرار است به عنوان یک برنامه نویس بک اند استخدام شوید، پس باید به سراغ فریمورک جنگو نیز بروید و آن را نیز بیاموزید. 

همانطور که می دانید فریمورک جنگو محبوب ترین فریمورک وب پایتون است که ما نیز در دوره استادی پایتون به آموزش صفر تا صدی این فریمورک پرداخته ایم و حتی یک سایت فروشگاهی را نیز با استفاده از پایتون پیشرفته و جنگو، پیاده سازی کرده ایم. توصیه می کنیم حتما به دوره استادی پایتون درسمن سری بزنید تا از ریز جزئیات این دوره مطلع شوید. از دیگر مهارت های فنی مازادی که کارفرمایان را تحت تاثیر قرار می دهد، یادگیری HTML، CSS و JS است. این سه مهارت پیرامون فرانت اند هستند و می توانند در یک مصاحبه کاری راهگشای شما شوند. مورد بعدی که می تواند در کنار پاسخ دهی به سوالات مصاحبه پایتون به کمک شما بیاید یادگیری دیتابیس و SQL است. 

اگر هم قصد دارید به حوزه های هوش مصنوعی و علم داده وارد شوید که باید به سراغ یادگیری کتابخانه های مرتبط با این حوزه مانندtensorflow ،scikit-learn ، matplotlib ،numpy ،keras و pandas بروید و آمار و احتمالات خود را نیز تقویت کنید. یکی از کارهایی که در مصاحبه های لاستخدامی برنامه نویسی به شما کمک می کند، این است که اطلاعات عمومی خود را درباره سایر زبان های برنامه نویسی بالا ببرید. لازم نیست کد نویسی همه زبان ها را بلد باشید، در همین حد که از شما بپرسند مثلا «Angular.js چیست؟» و بتوانید بگویید یک فریمورک جاوا اسکریپت است که برای برنامه نویسی فرانت اند از آن استفاده می شود، کافی است. 

مهارت حل مسئله

مهارت های لازم در مصاحبه پایتون

یک برنامه نویس با هر کدی که می زند، یک مشکل را حل می کند. فرقی نمی کند با چه زبانی برنامه نویسی می کنید چون تمامی زبان های برنامه نویسی ابزاری برای حل مشکلات هستند. در هر صورت دارید به حل یک مشکل کوچک یا بزرگ کمک می کنید. چیزی که شما باید بدانید این است که چگونه از زبانی مانند پایتون استفاده کنید که به یک راه حل برسید. هنر حل مسئله توانایی بسیار والایی برای برنامه نویسان است که تنها با تمرین و تکرار به دست می آید. 

شاید با خودتان بگویید که «من ابتدای راه هستم و نمی دانم که چه مشکلاتی وجود دارد که آن ها را حل کنم؟». اگر از این دسته افراد هستید، سوالات مصاحبه پایتونی که قرار است در این مطلب منتشر شود، بسیار کمک شما می کند و دید خوبی خواهید گرفت. ما، سوالات مصاحبه پایتون را به گونه ای انتخاب کرده ایم که شما را از حیث حل مسئله نیز به چالش می کشد و قطعا پس از پاسخ دادن به این سوالات به سطح مناسبی از مهارت حل مسئله دست پیدا کرده اید. در کنار سوالات مصاحبه پایتون می توانید، از ذهن خودتان استفاده کنید و مشکلات مختلفی را مطرح کنید و برای آن ها به دنبال راه حل باشید. قطعا پلتفرم هایی مانند LeetCode و HackerRank نیز می توانند گزینه خوبی برای پیدا کردن سوال های برنامه نویسی و حل آن ها باشند. 

زمانی که شما با استفاده از برنامه نویسی به حل یک مشکل می پردازید، قطعا با ارور های مختلفی واجه می شوید. بر طرف کردن مشکلاتی که باعث به وجود آمدن این ارور ها شده است نیز، باعث رشد مهارت حل مسئله می شود. هر زمانی هم که نتوانستید، مشکلات را حل کنید، باید به سراغ اینترنت بروید و جستجو کنید. StackOverflow بزرگ ترین مرجع برنامه نویسان برای رفع اشکالاتشان هست. دوست برنامه نویس عزیز، هرچقدر بیشتر برنامه نویسی کنید، قطعا مهارت حل مسئله شما بهتر خواهد شد. پس نگران نباشید و به کد نویسی ادامه دهید. 

مهارت های نرم

در یک مصاحبه استخدامی برنامه نویس پایتون، علاوه بر پاسخ به سوالات مصاحبه پایتون باید از مهارت های نرم نیز استفاده کنید. مهارت نرم از آن دسته مهارت هایی است که توسط برنامه نویسان نادیده گرفته شده است و به آن اهمیت نمی دهند. مهارت های نرم از آن دسته مهارت هایی هستند که هر کسی، در هر جایگاهی باید این مهارت را کسب کند. وقتی شما به بازارکار ورود می کنید با چندین نفر اعم از کافرما، همکاران یا مشتری ها سروکار دارید، پس باید بدانید که چگونه با آن ها ارتباط برقرار کنید. 

چک لیست 65 مورد از اساسی ترین سوالات مصاحبه پایتون

زبان برنامه نویسی پایتون یکی از کاربردی ترین و در عین حال محبوب ترین زبان های برنامه نویسی است. این زبان برنامه نویسی کاربرد های فراوانی دارد و روز به روز نیز وابستگی صنایع مختلف به آن بیشتر می شود که این یعنی حالا حالا ها با پایتون کار داریم و قرار نیست به این زودی ها منسوخ شود. 

همین عامل باعث شده تا روز به روز بر تعداد برنامه نویسان پایتون افزوده شود و آمار استخدام برنامه نویسان این زبان برنامه نویسی بالا برود. پس با خیال راحت شروع به آموزش پایتون کنید و بدانید که با تسلط به این زبان برنامه نویسی می توانید به عنوان یک برنامه نویس استخدام شوید، البته قبل از آن باید خود را آماده سوالات مصاحبه پایتون کنید. 

اصل جدا نشدنی تمامی مصاحبه های استخدامی، سوالاتی است که پرسیده می شود که استخدام برنامه نویس نیز از این قائده مستثنی نیست. سوال های مصاحبه پایتون با سوالات دیگر مصاحبه ها کمی متفاوت است. هدف از مطرح کردن و پرسیدن سوال های مصاحبه پایتون، به چالش کشیدن دانش فرد برنامه نویس و همچنین میزان تسلط او به مباحث پایتون است. 

از آنجایی که قبولی در یک موقعیت شغلی برای هر کسی شیرین اما دشوار است، تصمیم گرفتیم، این دشواری را از سر راهتان برداریم. به همین منظور 65 مورد از مهم ترین و اساسی ترین سوالات مصاحبه پایتون را آورده ایم تا با تمرین و تکرار آن ها بتوانید دانش خود را به چالش بکشید و به تسلط کافی برسید. سوال های مصاحبه پایتونی که در ادامه آورده ایم، حکم برگه تقلب را دارد و می تواند کمک خوبی برای شما باشد. 

سوالات مصاحبه استخدام پایتونی که در این قسمت آورده ایم از سطح مبتدی تا پیشرفته را پوشش داده است و می تواند شما را هم لحاظ دانش تئوری و هم لحاظ فنی به چالش بکشد. شایان به ذکر است که تمامی این سوالات دارای پاسخ هستند، پس از این لحاظ نیز نگرانی نداشته باشید. این سوالات به شرح زیر می باشد:

سوالات مصاحبه پایتون (مقدماتی)

1- سوال: برخی از خصوصیات و ویژگی های زبان برنامه نویسی پایتون را توضیح دهید. 

پاسخ: پایتون یک زبان برنامه نویسی همه منظوره؛ کاربردی، سطح بالا و تفسیر شده است. پایتون اغلب با زبان انگلیسی مقایسه می شود. این زبان برنامه نویسی نسبت به دیگر زبان های برنامه نویسی ساختار نحوی ساده تری دارد و به همین علت یادگیری و پیاده سازی آن آسان تر است.

2- سوال: برخی از ویژگی های متمایز کننده پایتون را نام ببرید. 

پاسخ: از جمله ویژگی های متمایز کننده پایتون می توان به موارد زیر اشاره کرد: 

  • پشتیبانی از انواع داده های سطح بالا
  • پشتیبانی و بررسی از انواع داده های پویا 
  • پشتیبانی از برنامه نویسی ساختار یافته و کاربردی
  • ایجاد و کامپایل کردن آن در بایت کد به منظور توسعه آسان تر
  • جمع آوری خودکار زباله 
  • قابلیت همگام سازی زبان برنامه نویسی پایتون با زبان های برنامه نویسی چون جاوا، C ،C++ ،COM ،ActiveX و COBRA

3- سوال: Pythonpath چیست؟

پاسخ: Pythonpath مفسر پایتونی است که فایل های ماژول هایی را که می خواهیم به برنامه اضافه کنیم، پیدا کند که شامل دایرکتوری کتابخانه منبع پایتون و دایرکتوری سورس کد است. شما می توانید Pythonpath را به عنوان یک نصب کننده پایتون از قبل تنظیم کنید. 

4- سوال: چرا از متغیر محیطی Pythonstartup استفاده می کنیم؟

پاسخ: متغیر Pythonstartup از  مسیری تشکیل شده است که می توان فایلی با مقدار دهی اولیه از سورس کد های پایتون را در آن اجرا کرد. این متغیر برای شروع و راه اندازی مترجم نیاز است. 

5- سوال: متغیر محیطی Pythoncaseok چیست؟

پاسخ: کاربرد متغیر محیطی Pythoncaseok در ویندوز به این صورت است که با استفاده از پایتون می توان اولین مورد از تطابق غیر حساس به حروف بزرگ و کوچک در یک عبارت را استخراج کرد. 

6- سوال: انواع داده های استانداردی که در پایتون پشتیبانی می شوند؛ کدام است؟ 
 
پاسخ: انواع داده های استانداردی که در پایتون پشتیبانی می شوند به شرح زیر است: 

نمایش درختی انواع داده در پایتون

  • لیست ها (Lists)
  • اعداد (Numbers)  
  • رشته ها (Strings)
  • دیکشنری ها (Dictionaries)
  • تاپل ها (Tuples)

7- سوال: تاپل چیست؟

پاسخ: تاپل ها نوعی داده متوالی در زبان برنامه نویسی پایتون است که دارای مقادیر غیر قابل تغییر هستند. مقدار دهی به تاپل ها به این صورت است که اگر i را تاپل در نظر بگیریم، مقدار آن را در مقابلش درج می کنیم و با استفاده از یک کاما آن ها را از هم جدا می کنیم. 

8- سوال: تفاوت عمده بین لیست ها و تاپل ها در پایتون چیست؟

پاسخ: در پاسخ به این سوال از سوالات مصاحبه پایتون باید به موارد زیر اشاره کنید:

لیست تاپل
از لیست ها برای ایجاد یک دنباله استفاده می شود  تاپل ها شبیه به یک لیست هستند، اما بر عکس لیست ها داخل پرانتز قرار داده می شوند
عناصر و اندازه ها غیر قابل تغییر است   عناصر و اندازه ها قبل تغییر است
قابلیت به روزرسانی دارد قابلیت به روزرسانی ندارد
لیست ها قابلیت تغییر دارند  قابلیت استفاده به عنوان لیست های فقط خواندنی را دارند
لیست ها از کروشه استفاده می کنند  تاپل ها از پرانتز استفاده می کنند
یک مثال از لیست ها:
L = [20, "T" , "string" , 2+2]

 یک مثال از تاپل ها:
tup = (6, "r", "string", 2+2)

 

9- سوال: شاخص های مثبت و منفی در پایتون را بازگو کنید.

پاسخ: در زبان برنامه نویسی پایتون، زمانی که جستجو از چپ به راست شروع شود، شاخص های مثبت اعمال می شوند. اگر جستجو از راست به چپ باشد، شاخص های منفی اعمال می شود. برای مثال، در لیست آرایه ای با n شاخص مثبت، اولین شاخص 0 است. شاخص بعدی 1 و . . . این داستان تا انتهای این شاخص ها که n-1 است ادامه دارد. با این وجود، در شاخص منفی اولین شاخص n– است و سپس (n-1)–  که این روند هم تا زمانی که به 1- که آخرین شاخص است، ادامه دارد. 

10- سوال: طول مجاز برای شناسه چقدر است؟ 

پاسخ: شناسه در پایتون می تواند هر میزان طولی داشته باشد. طولانی ترین شناسه از PEP – 8 و PEP – 20 خواهد بود. 

11- سوال: شی متد (()object) چه کاری انجام می دهد؟ 

پاسخ: عملکرد این متد در پایتون به این صورت است که یک شی بدون ویژگی را بر می گرداند که پایه همه کلاس ها است. در این روش هیچ پارامتری گرفته نمی شود. 

12- سوال: pep 8 چیست؟ 

پاسخ: Python Enhancement Proposal 8 که به اختصار با pep 8 آن را نمایش می دهند، پیشنهاد بهبود پایتون است که به صورت مجموعه قوانینی است که فرمت کد های پایتون را مشخص می کند تا بیشترین میزان خوانایی را داشته باشند. 

13- سوال: Namespace در پایتون چیست؟ 

پاسخ: فضای نام یا namespace، یک سیستم نام گذاری است که به برنامه نویس کمک می کند تا مطمئن شود که تمامی نام گذاری ها منحصر به فرد است و تضادی در نام گذاری وجود ندارد. 

14- سوال: آیا رعایت فرورفتگی در کد های پایتون ضروری است؟ 

پاسخ: رعایت فرورفتگی یا همان تو رفتگی در کد نویسی پایتون الزامی است. اگر این تو رفتگی ها را حین کد نویسی رعایت نکنید، کد های شما حین اجرا به مشکل می خورند و اجرا نمی شوند که این امر هم باعث بروز خطا می شود. تو رفتگی در پایتون با استفاده از 4 کاراکتر فاصله (space) ایجاد می شود. 

15- سوال: تابع در پایتون را تعریف کنید. 

پاسخ: تابع در پایتون عبارت است از قطعه کدی که هنگام فراخوانی اجرا می شود. این قطعه کد را تابع می گویند. برای تعریف یک تابع در پایتون باید از کلمه کلیدی def استفاده کنید. قطعه کد آن به شرح زیر است: 
 

def my_function():
  print("Hello from a function")

 

16- سوال: منظور از تعریف self در پایتون یعنی چه؟ 

پاسخ: Self نمونه ای از یک شی یا کلاس در پایتون است که به عنوان اولین پارامتر گنجانده می شود. این کلاس یا شی موجب تمایز بین متد ها شده و کمک می کند که ویژگی کلاس ها با متغیر های محلی متمایز شوند. قطعه کدی که شامل مثال است در ادامه آورده ایم: 
 

class Person:
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age

  def myfunc(abc):
    print("Hello my name is " + abc.name)

p1 = Person("John", 36)
p1.myfunc()

 

17- سوال: منظور از دستور Pass چیست؟ 

پاسخ: در زبان برنامه نویسی پایتون، زمانی از دستور Pass استفاده می شود که برنامه نویس نمی تواند تصمیم بگیرد که در کد خود چه کاری انجام دهد، اما این را می داند که باید چیزی را تایپ کند تا از نظر نحوی مشکلی پیش نیاید و همه چیز درست باشد. 

18- سوال: محدودیت های پایتون شامل چه مواردی است؟ 

پاسخ: پایتون نیز مانند هر زبان برنامه نویسی دیگری محدودیت های خاص خودش را دارد. در ادامه محدودیت های این زبان را آورده ایم: 

  • این زبان دارای محدودیت هایی در طراحی است. 
  • سرعت پایتون نسبت به زبان هایی مانند C ،C++ و جاوا کند تر است. 
  • کد های نوشته شده با استفاده از پایتون برای محاسبات تلفن همراه ناکارآمد است. 
  • زبان پایتون از یک لایه دسترسی به پایگاه داده توسعه نیافته تشکیل شده است. 

19- سوال: آیا خطای زمان اجرا (runtime errors) در پایتون وجود دارد؟ مثال بزنید. 

پاسخ: بله؛ در زبان پایتون هم خطای زمان اجرا وجود دارد. به عنوان مثال؛ شما در حال تایپ کلمه duck هستید و کلماتی که مشابه duck هستند توسط برنامه duck در نظر گرفته می شوند. برای این مورد خطای زمان اجرا در نظر گرفته می شود. 

20- سوال: آیا می توانیم یک لیست را در پایتون معکوس کنیم؟ 

پاسخ: بله، در پایتون نیز این ویژگی وجود دارد. شما می توانید از متد ()reverse استفاده کنید و لیست مورد نظرتان را در پایتون بر عکس کنید. قطعه کد آن را در ادامه مشاهده خواهید کرد: 
 

def reverse(s):
 str = "" 
 for i in s: 
   str = i + str
  return str

 

21- سوال: چرا در هنگام کد نویسی به دستور break نیاز دارید؟ 

پاسخ: شما می توانید هنگام کد نویسی از break استفاده کنید، چرا که آن ها به شما کمک می کنند تا حلقه جاری را بشکنید و اجرا را متوقف کنید تا تا به بلوک بعدی منتقل شوید. دستور break به جهت کنترل حلقه ها در پایتون استفاده می شود. 

22- سوال: چرا در زبان پایتون به دستور continue نیاز دارید؟ 

پاسخ: دستور continue در پایتون، به منظور کنترل حلقه ها و پرش به تکرار بعدی حلقه بدون اتمام آن دستور، استفاده می شود. 

23- سوال: آیا می توانیم از دستورات break و continue با یکدیگر استفاده کنیم؟ 

پاسخ: در زبان برنامه نویسی پایتون این امکان وجود دارد که دستورات Break و continue را با یکدیگر استفاده کنید. دستور Break اجرای حلقه فعلی را متوقف می کند و continue ادامه اجرا را به حلقه دیگری منتقل می کند. 

24- سوال: آیا پایتون از حلقه do-while داخلی پشتیبانی می کند یا خیر؟ 

پاسخ: خیر؛ ذات پایتون به گونه ای است که از do-while پشتیبانی نمی کند. 

25- سوال: در پایتون به چند روش می توان رشته های معکوس را اعمال کرد؟ 

پاسخ: 5 روش در پایتون وجود دارد که با استفاده از آن ها می توانید رشته های معکوس را اعمال کنید: 

  • حلقه ها
  • پشته ها
  • بازگشت
  • عملکرد معکوس
  • نحو برش توسعه یافته 

26- سوال: برش یا اسلایسینگ (slicing) را در پایتون توضیح دهید. 

پاسخ: slicing در پایتون، مکانیزمی است که برای انتخاب محدوده ای از آیتم های در توالی مانند لیست ها، رشته ها و تاپل ها استفاده می شود. 

27- سوال: docstring در پایتون چیست؟ 

پاسخ: docstring رشته ای از مستندات در پایتون است. با استفاده از docstring در پایتون می توان ماژول ها، توابع و کلاس ها را برای مستند سازی استفاده کرد. 

28- سوال: چگونه می توان یک فایل را در پایتون حذف کرد؟ 

پاسخ: برای حذف فایل در پایتون می توانید از دو دستور زیر استفاده کنید: 
دستور اول: 

os.remove(filename)


 و دستور دوم: 

os.unlink(filename)

 

29- سوال: مراحل مختلف چرخه زندگی یک رشته (life cycle of a thread) را توضیح دهید. 

پاسخ: مراحل مختلف چرخه زندگی یک رشته به شرح زیر است: 

  1.  ایجاد کلاسی که بتوانیم از آن استفاده کنیم و متد run کلاس Thread را متوقف کنیم. 
  2.  یک فراخوانی برای شروع رشته ای جدید با استفاده از دستور ()start انجام می دهیم. 
  3.  در این مرحله اجرا رشته شروع می شود. اجرا جایی شروع می شود که استارت آن زده شده است. 
  4.  رشته باید منتظر بماند تا فراخوانی متد هایی مانند ()join و ()sleep انجام شود. 
  5.  پس از اجرا یا انتظار رشته، رشته ای که برای زمان بندی انتظار است ارسال می شود. 
  6.  رشته ای که در حالت اجرا است با اجرای پایانه ها متوقف شده و به حالت مرده در می آید. 

30- سوال: عملگر های رابطه ای، انتساب و عضویت را به ترتیب توضیح دهید. 

پاسخ: پاسخ این سوال به شرح زیر است: 

  • عملگر رابطه ای: هدف استفاده از عملگر های رابطه ای، مقایسه مقادیر است. 
  • عملگر انتساب: هدف استفاده از این نوع عملگر ترکیب عملگر های حسابی با نماد تخصیص است. 
  • عملگر عضویت: عملگر های عضویت در پایتون با هدف اعتبار سنجی عضویت یک مقدار خاص در یک دنباله استفاده می شود. 

31- سوال: اپراتور های عضویت (membership) و اپراتور های هویت (identity) چه تفاوتی با یکدیگر دارند؟ 

پاسخ: در اپراتور های هویت مقادیر با یکدیگر مقایسه می شوند تا بفهمند که آیا ارزش یکسانی دارند یا خیر. این عمل برعکس فرآیندی است که در اپراتور های عضویت رخ می دهد. 

32- سوال: منظور از دکوراتور ها (decorators) در پایتون چیست؟ 

پاسخ: ایجاد تغییرات خاصی که در نحو پایتون صورت می گیرد تا توابع بتوانند به آسانی تغییر کنند را دکوراتور پایتون می نامند.

33- سوال: تفاوت بین توابع xrange و range چیست؟

پاسخ: range() و xrange() دو تابعی هستند که می‌توانند برای تکرار تعداد مشخصی از حلقه‌های for در پایتون استفاده شوند. در پایتون 3، xrange وجود ندارد اما تابع range مانند xrange در پایتون 2 عمل می کند.

  • range() : لیستی از اعداد ایجاد شده با استفاده از تابع range() را برمی‌گرداند.
  • xrange(): این تابع شی مولد را برمی‌گرداند که می‌توان از آن برای نمایش اعداد تنها با حلقه زدن استفاده کرد.

34- سوال: مدیریت حافظه در پایتون چگونه انجام می‌شود؟

پاسخ: پایتون از فضای پشته خصوصی خود برای مدیریت حافظه استفاده می‌کند و اساسا تمام اشیا و ساختارهای داده نیز در فضای پشته خصوصی ذخیره می‌گردد.ن هم بدانید که به فضای پشته خصوصی، برنامه‌نویس هم نمی‌تواند به این فضای خصوصی دسترسی داشته باشد زیرا مترجم از این فضا مراقبت می‌کند. همچنین دارای یک جمع کننده زباله داخلی است که تمام حافظه استفاده نشده را بازیافت و حافظه را آزاد می‌کند تا در نهایت آن را در دسترس فضای پشته قرار دهد.

35- سوال: Access Specifier در پایتون چیست؟

پاسخ: در پایتون از Access Specifier با نماد '_' برای تعیین کنترل دسترسی یک عضو داده خاص یا یک تابع عضو از یک کلاس استفاده می‌شود. بنابراین یک کلاس در پایتون دارای سه نوع تغییر دهنده دسترسی پایتون است :

  • اصلاح کننده دسترسی عمومی(Public Access Modifier): اعضای یک کلاس که عمومی اعلام می‌شوند به راحتی از هر قسمت برنامه، قابل دسترسی هستند. همه اعضای داده و توابع عضو یک کلاس به طور پیش فرض عمومی هستند. 
  • Protected Access Modifier: اعضای یک کلاس که محافظت شده هستند، فقط برای کلاس مشتق شده از آن قابل دسترسی بوده و همه اعضای داده یک کلاس، با افزودن یک علامت زیرخط '_' قبل از اعضای داده آن کلاس محافظت می‌شوند. 
  • اصلاح کننده دسترسی خصوصی(Private Access Modifier): اعضای یک کلاس که به صورت خصوصی هستند، فقط در کلاس قابل دسترسی مورد استفاده قرار می‌گیرد. بنابراین اعضای داده یک کلاس، با افزودن یک علامت دو خط زیر «__» قبل از عضو داده آن کلاس خصوصی اعلام می‌شود.

36- سوال: Walrus Operator چیست؟

پاسخ: عملگر Walrus به شما این امکان را می‌دهد که یک مقدار را به یک متغیر در یک عبارت اختصاص دهید. این قابلیت زمانی مفید است که شما نیاز دارید از یک مقدار چندین بار در یک حلقه استفاده کنید، اما نمی‌خواهید محاسبه را تکرار کنید. عملگر Walrus با دستور ":=" نشان داده می‌شود و می‌تواند در زمینه‌های مختلف از جمله حلقه‌های while و دستورات if استفاده شود. این هم در نظر داشته باشید که نسخه‌های پایتون قبل از 3.8، پشتیبانیWalrus Operator را برعهده ندارند.

37- سوال: فضای نام پایتون چیست؟ چرا از آنها استفاده می شود؟

پاسخ: فضای نام در پایتون باعث می‌شود تا نام اشیا در یک برنامه منحصر به فرد باشد و بدون هیچ‌گونه تضادی مورد استفاده قرار گیرد. پایتون این فضاها در فرهنگ لغت خود را با نام کلید فرامی‌خواند و به شی نیز عنوان مقدار را می‌دهد. این قابلیت به چندین فضای نام اجازه می‌دهد تا از یک نام استفاده و آن را به یک شی جداگانه فراخوانی کند. چند نمونه از فضاهای نام به شرح زیر است:

  • فضای نام محلی(Local Namespace) که شامل نام‌های محلی در داخل یک تابع است و به‌طور موقت برای فراخوانی تابع ایجاد و با بازگشت تابع، پاک می‌شود.
  • فضای نام جهانی(Global Namespace) شامل بسته‌ها و ماژول‌های مختلف هستند که در پروژه فعلی استفاده می‌شود. این فضای نام زمانی ایجاد می‌گردد که یک ماژول یا بسته در اسکریپت وارد شده و تا زمان اجرای آن، ادامه می‌یابد.
  • فضای نام داخلی(Built-in Namespace) شامل توابع داخلی هسته پایتون و نام‌های داخلی برای انواع مختلف استثنا است.

این هم بدانید که چرخه حیات یک فضای نام، بستگی به محدوده اشیایی دارد که به آن نگاشت می‌شود و این یعنی اگر دامنه یک شی به پایان برسد، چرخه حیات آن فضای نام نیز به پایان می رسد. بنابراین، دسترسی به اشیا فضای نام داخلی از فضای نام بیرونی امکان‌پذیر نیست.

38- سوال: وضوح محدوده(Scope Resolution) در پایتون چیست؟

پاسخ: گاهی اوقات اشیا در یک محدوده، دارای یک نام بوده اما عملکرد متفاوتی دارند. در چنین مواردی، وضوح محدوده یا Scope Resolution، به‌طور خودکار در پایتون وارد عمل می‌شود. برای درک این موضوع، فرض کنید که یک شی temp به صورت سراسری به 10 و سپس در فراخوانی تابع به 20 مقداردهی شده است. با این حال، فراخوانی تابع مقدار temp  در متغیرهای سراسری تغییر نکرده است. بنابراین، پایتون با قابلیت Scope Resolution، یک خط واضح بین متغیرهای سراسری و محلی ترسیم می‌کند و فضای نام آنها را به عنوان هویت‌های جداگانه در نظر می‌گیرد.

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10

39- سوال: لامبدا در پایتون چیست؟ چرا استفاده می شود؟

پاسخ: Lambda، یک تابع در پایتون است که می تواند هر تعداد آرگومان را بپذیرد اما فقط می‌تواند یک عبارت داشته باشد. به طورکلی، این قابلیت در موقعیت‌هایی استفاده می‌شود که به یک تابع ناشناس برای یک دوره زمانی کوتاه نیاز است. همچنین توابع لامبدا را می‌توان به دو روش زیر استفاده کرد:

  • تخصیص توابع لامبدا به یک متغیر
mul = lambda a, b : a * b
print(mul(2, 5))    # output => 10
  • قرار دادن توابع لامبدا در یک تابع دیگر
def myWrapper(n):
 return lambda a : a * n
mulFive = myWrapper(5)
print(mulFive(2))    # output => 10

40- سوال: چگونه بررسی می‌کنید که آیا کلاسی فرزند کلاس دیگری است؟

پاسخ: این کار با استفاده از روشی به نام issubclass() در پایتون انجام می‌شود. در واقع، این متد با برگرداندن true یا false به ما می‌گوید که آیا هر کلاس فرزند کلاس دیگری است  یا خیر؟

41- سوال: تفاوت بین فایل‌های .py و .pyc چیست؟

پاسخ: فایل‌های .py در دسته فایل‌های کد منبع پایتون محسوب می‌شوند، در حالی که فایل‌های pyc حاوی بایت کد فایل‌های پایتون هستند. بنابراین فایل‌های .pyc زمانی ایجاد می‌شوند که یک کد از منبع دیگری وارد شده و مفسر، فایل‌های منبع .py را به فایل‌های .pyc تبدیل می کند تا به صرفه جویی در زمان کمک کرده باشد.

42- سوال: دکوراتورها در پایتون، چه معنایی دارند؟

پاسخ: دکوراتورها در پایتون اساسا توابعی هستند که بدون تغییر ساختار خود تابع، عملکردی را به یک تابع موجود در پایتون اضافه می‌کنند. آنها به صورت  decorator_name@ در پایتون نمایش داده می‌شوند و روش فراخوانی آن‌ها از پایین به بالا است. در حقیقت ویژگی منحصربه فرد دکوراتورها در این است که علاوه‌بر افزودن قابلیت به خروجی متد، می‌توانند آرگومان‌هایی را برای توابع بپذیرند و آن‌ها را قبل از ارسال به خود تابع، تغییر دهند.