15 ta eng tez-tez so'raladigan Python intervyu savollari
Yangi boshlanuvchilar va ilg'or Python dasturchilari uchun eng ko'p beriladigan 15 ta savol tahlili.
1. PEP 8 nima?
PEP qisqartmasi Python Enhancement Proposeni anglatadi. Bu Python hamjamiyatiga ma'lumot beruvchi va Python yoki uning jarayonlari uchun yangi xususiyatni tavsiflovchi rasmiy dizayn hujjati. PEP 8 muhim, chunki u Python kodi uchun uslublar bo'yicha ko'rsatmalarni hujjatlashtiradi. Ya'ni, kod yozish uchun ma'lum qoidalar kiritilgan, ularga rioya qilish tavsiya etiladi.
2. Python tilidagi qamrov - ular nima?
Python-dagi ob'ekt doirada ishlaydi. Skop - bu Python-dagi ob'ekt tegishli bo'lib qoladigan kod blokidir. Nom maydonlari dastur ichidagi barcha ob'ektlarni noyob tarzda aniqlaydi. Shu bilan birga, bu nom maydonlari ular uchun belgilangan doiraga ega, bu erda ularning ob'ektlari prefikssiz ishlatilishi mumkin. Quyida Python da ish vaqtida yaratilgan doiralarning ba'zi misollari keltirilgan:
- Mahalliy qamrov - joriy funktsiyada mavjud bo'lgan mahalliy ob'ektlarga ishora qiladi.
- Global qamrov - yaratilgan paytdan boshlab kodni bajarish jarayonida mavjud bo'lgan ob'ektlarni bildiradi.
- Modul darajasidagi qamrov - dasturda mavjud bo'lgan joriy modulning global ob'ektlarini bildiradi.
- Outermost dasturda chaqirilgan barcha o'rnatilgan nomlarni bildiradi. Ushbu doiradagi ob'ektlar eng so'nggida ko'rsatilgan nomni topish uchun qidiriladi.
3. List va Tuples - ular nima uchun kerak va qanday farqlar bor?
List va Tuples - bu Python-da ob'ektlar to'plamini saqlaydigan ma'lumotlar turlari. Ikkala ketma-ketlikda saqlangan ob'ektlar turli xil ma'lumotlar turlariga ega. Ro'yxat['sara', 6, 0.19]
kvadrat qavslar va kortejlar qavslar bilan ifodalanadi ('max', 5, 0.97)
. Ularning orasidagi asosiy farq shundaki, ro'yxat o'zgaruvchan bo'lsa-da , kortejlar o'zgarmas ob'ektdir. Bu shuni anglatadiki, ro'yxatdagi ma'lumotlarni tezda o'zgartirish, qo'shish yoki kesish mumkin, kortejlardagi ma'lumotlar esa o'zgarishsiz qoladi va hech qanday tarzda o'zgartirilmaydi.
4. Pythonda pass nima?
Pass bu Pythonda null operatsiya hisoblanadi. Odatda ish vaqtida bajarilishi mumkin bo'lgan bo'sh kod bloklarini to'ldirish uchun ishlatiladi.
5. Pythonda modullar va paketlar nima?
Modullar - bu Python fayllari <<.py>>
. Ularni bir marta import qilish va ishga tushirish mumkin import
. Agar qisman funksionallik talab etilsa, kerakli sinflar yoki funksiyalar yordamida import qilinadi from foo import bar
.
Paketlar nuqta belgilaridan foydalangan holda modul nomlar maydonini ierarxik tarzda tuzish imkonini beradi. Modullar global o'zgaruvchilar nomlari o'rtasidagi to'qnashuvlarning oldini olishga yordam berganidek, paketlar modul nomlari o'rtasidagi to'qnashuvlarning oldini olishga yordam beradi. Paket yaratish oson, chunki u tizimning mahalliy fayl strukturasidan foydalanadi. Paket fayl tizimida papka sifatida yaratiladi va kerakli modul (python fayli) joylashtiriladi. Paketdan modul yoki uning mazmunini import qilish paket nomi modul nomiga nuqtali prefiks bo‘lishini talab qiladi.
Paketlar va modullar Python-da modulli dasturlash imkonini beruvchi ikkita mexanizmdir. Modulli dasturlash bir qancha afzalliklarga ega:
- Oddiylik : Bitta modul ustida ishlash muammoning nisbatan kichik qismiga e'tibor qaratish imkonini beradi. Bu rivojlanishni osonlashtiradi va xatoga yo'l qo'ymaydi.
- Xizmat ko'rsatish qobiliyati: Modullar turli xil muammoli hududlar o'rtasidagi mantiqiy chegaralarni ta'minlash uchun mo'ljallangan. Agar ular o'zaro bog'liqlikni kamaytiradigan tarzda yozilsa, moduldagi o'zgarishlar dasturning boshqa qismlariga ta'sir qilish ehtimoli kamroq.
- Qayta foydalanish imkoniyati : modulda belgilangan funksiyalar dasturning boshqa qismlarida osongina qayta ishlatilishi mumkin.
- Belgilash : Modullar odatda alohida nom maydonini belgilaydi, bu dasturning boshqa qismlaridagi identifikatorlar o'rtasida chalkashliklarni oldini olishga yordam beradi.
6. Pythonda massiv va ro‘yxat o‘rtasidagi farq nima?
Massivlar faqat bir xil turdagi ma'lumotlarning elementlarini o'z ichiga oladi, ya'ni massivning ma'lumotlar turi bir hil bo'lishi kerak. Massivlar xotirani kamroq sarflaydi.
Ro'yxatlar turli turdagi ma'lumotlarning elementlarini o'z ichiga oladi, ya'ni ro'yxatlarning ma'lumotlar turi geterogen bo'lishi mumkin. Ularning kamchiliklari katta hajmdagi xotirani iste'mol qilishdir.
7. Pythonda manfiy indekslar
Python-da salbiy indekslar to'plamlar va massivlarni kesishning mashhur qo'llanilishidir. Ya'ni, indekslash kollektsiyalardan qirqishlarni yaratish uchun ishlatilishi mumkin.
Sintaksis - [start : stop : step]
:
start
- qaysi indeksdan boshlash kerak (salbiy bo'lishi mumkin)stop
- qayerda to'xtash kerakstep
- qadamlar soni. Standart1
.
8. Pythonda xotira qanday boshqariladi?
Python da tayinlash operatori ( =
) ob'ektlardan nusxa ko'chirmaydi. Buning o'rniga, u mavjud ob'ekt va maqsadli o'zgaruvchining nomi o'rtasida bog'lanish hosil qiladi. Python-da ob'ektning nusxalarini yaratish uchun siz copy
. Bundan tashqari, yordamida berilgan ob'ekt uchun nusxalarni yaratishning ikki yo'li mavjud copy
.
- Sayoz nusxa - ob'ektning bitli nusxasi. Yaratilgan nusxalangan ob'ektda asl ob'ektdagi qiymatlarning aniq nusxasi mavjud. Agar qiymatlardan biri boshqa ob'ektlarga havola bo'lsa, faqat ularga havolalar manzillari ko'chiriladi.
- Deep Copy - barcha qiymatlarni rekursiv ravishda manba ob'ektidan maqsadga ko'chiradi, ya'ni hatto manba ob'ekti tomonidan havola qilingan ob'ektlarni ham takrorlaydi.
10. Pythonda operatorni ortiqcha yuklash qanday amalga oshiriladi?
Operatorning haddan tashqari yuklanishi - bu sinflardagi turli operatorlarni qayta belgilash, ya'ni kontekstga qarab ular bajaradigan amallarni o'zgartirish qobiliyati. Python qo'shish, ayirish va boshqalar kabi operatorlarga ega bo'lib, ular sinf uchun ortiqcha yuklanishi mumkin.
11. Argumentlar qanday uzatiladi - qiymatlar yoki havolalar?
Python-da argumentlar havola orqali uzatiladi, ya'ni haqiqiy ob'ektga havola uzatiladi. Ammo argumentlarda ikki xil ob'ekt o'tadi.
Qiymat bo'yicha: Haqiqiy ob'ektning nusxasi uzatiladi. Ob'ekt nusxasining qiymatini o'zgartirish asl ob'ektning qiymatini o'zgartirmaydi.
Malumot bo'yicha: Haqiqiy ob'ektga havola uzatiladi. Yangi ob'ektning qiymatini o'zgartirish asl ob'ektning qiymatini o'zgartiradi.
12. *arglar va *kvarglar nima?
*args
o'zgaruvchan uzunlikdagi argumentlarni uzatish uchun funksiya ta'rifida qo'llaniladigan maxsus sintaksisdir.
*
- o'zgaruvchan uzunlik degan ma'noni anglatadi va args
- bu PEP 8da qabul qilingan nom, ammo boshqa har qanday nomdan foydalanish mumkin
**kwargs
o'zgaruvchan uzunlikdagi argumentlarni kalit so'zlar bilan uzatish uchun funksiya ta'rifida ishlatiladigan maxsus sintaksis. Darhaqiqat, dictionary
bu key
va value
.
13. Bo'sh sinf va u qanday ishlatiladi?
Bo'sh sinf - bu ba'zi usullar yoki xususiyatlarni amalga oshirishga ega bo'lmagan sinf. Bo'sh sinf bilan pass kalit so'zi xatolikka yo'l qo'ymaslik uchun ishlatiladi.
14. Python kirish spetsifikatorlaridan foydalanadimi?
private
Python , public
, va hokazo kabi kirish spetsifikatorlaridan foydalanmaydi protected
. Biroq, u oʻzgaruvchilar nomlariga bitta ( protected
) yoki ikkita pastki chiziq ( private
) prefikslarini qoʻllash orqali oʻzgaruvchilar xatti-harakatlarini taqlid qilish tushunchasiga ega. Odatiy bo'lib, pastki chiziqsiz o'zgaruvchilar umumiy hisoblanadi.
15. Algoritmni yozing (bir necha misollar)
- Ikki xil lug'atni birlashtirish dasturini yozing. Birlashtirganda, agar siz bir xil kalitlarni topsangiz, ushbu kalitlarning qiymatlarini qo'shishingiz mumkin. Yangi lug'at chiqaring
A
Yig'indisi berilgan qiymatga teng bo'lgan berilgan massivning juftlarini sinash va qaytarish dasturini yozing N
.
shunga o`xshash algoritmlarni bemalol yozishingiz mumkin...Efirda O`zbek Dasturchi edi.. E`tiboringiz uchun rahmat...