Да ли се припремате за Питхон интервјуе? Или сте само радознали да знате колико познајете Питхон? Нема проблема. Овде покривамо ваше проблеме са питањима и одговорима.
Чланак ће вам помоћи да разумете са каквом врстом питања можете да се суочите током интервјуа. Или вам помаже да процените своје Питхон вештине. Обавезно одговорите на питања пре него што видите одговоре да бисте се тачно проценили. Без икаквог одлагања, хајде да заронимо у питања.
Питања су подељена у различите делове у зависности од врсте тема. Сваки одељак има питања заједно са курираним одговорима. Одговор можете модификовати својим језиком са истим значењем. Дакле, анкетар неће осетити да нешто читате.
Преглед садржаја
Питхон Лангуаге
#1. Шта је Питхон?
Питхон је интерпретирани програмски језик високог нивоа опште намене. Можемо да направимо скоро сваку врсту апликације користећи Питхон са библиотекама и оквирима независних произвођача. Питхон је један од најпопуларнијих програмских језика у напредним технологијама попут вештачке интелигенције, науке о подацима итд.
#2. Која је главна разлика између преводиоца и компајлера?
Интерпретатор преводи једну по једну наредбу у машински код, док преводилац преводи цео по један код у машински код.
#3. Да ли је Питхон статички или динамички куцани језик?
Питхон је динамички куцани језик.
#4. Шта подразумевате под динамички куцаним језиком?
Динамички куцани језици проверавају типове променљивих током извршавања. Неки динамички куцани језици су Питхон, ЈаваСцрипт, Руби, итд.
Бонус: Статички куцани језици проверавају типове променљивих у време компајлирања. Неки статички откуцани језици су Ц++, Ц, Јава, итд.,
#5. Дајте неке апликације Питхон-а.
Питхон има једноставнију и лаку за учење синтаксу. Можда изгледа слично енглеском. Заједница програмера за Питхон је огромна. Можемо пронаћи много пакета независних произвођача за рад са различитим врстама развоја апликација. Када је развој у питању, можемо креирати веб апликације, ГУИ апликације, ЦЛИ апликације итд.,
Једна од најпопуларнијих апликација Питхон-а је аутоматизација. Лако можемо да креирамо скрипте у Питхон-у за аутоматизацију задатака као што су чишћење диска, слање поште, добијање података о ценама производа, итд.,
Питхон је један од најпопуларнијих језика који се користи у области науке о подацима.
#6. Које сте апликације направили користећи Питхон?
Написао сам више скрипти за аутоматизацију да елиминишем понављајуће и досадне задатке. И скрипте за добијање информација о ценама производа, доступности итд.
Такође сам радио са оквирима као што су Дјанго, Фласк за прављење веб апликација. И направите неке веб апликације користећи Дјанго и Фласк.
Напомена: Горњи одговор је пример. Ваш одговор може бити потпуно другачији од претходног. Покушајте да објасните различите области на којима сте радили користећи Питхон. Прикажите апликације ако су доступне.
Типови података
#7. Који су типови података уграђени у Питхон?
У Питхон-у постоји више уграђених типова података. Они су инт, флоат, цомплек, боол, листа, тупле, сет, дицт, стр.
Напомена: Не морате да кажете све типове података присутних у Питхон-у. Наведите неке од њих које најчешће користите. Анкетар може постављати питања на основу вашег одговора.
#8. Која је разлика између листе и тупле?
И листа и тупле се користе за чување колекције објеката. Главна разлика између листе и тупле је „листа је променљиви објекат, док је тупле непроменљив објекат“.
#9. Шта су променљиви и непроменљиви типови података?
Променљиви типови података се могу променити након њиховог креирања. Неки од променљивих објеката у Питхон-у су листа, сет, дицт.
Непроменљиви типови података се не могу променити након њиховог креирања. Неки од непроменљивих објеката у Питхон-у су стр, тупле.
#10. Објасните неке методе листе.
1. аппенд – метода се користи за додавање елемента на листу. Додаје елемент на крај листе.
>>> a = [1, 2] >>> a.append(3) >>> a [1, 2, 3]
2. поп – метода се користи за уклањање елемента са листе. Уклониће последњи елемент ако не дамо никакав индекс као аргумент или уклонити елемент из индекса ако дамо аргумент.
>>> a = [1, 2, 3, 4, 5] >>> a.pop() 5 >>> a [1, 2, 3, 4] >>> a.pop(1) 2 >>> a [1, 3, 4]
3. ремове – метода се користи за уклањање елемента са листе. Морамо да обезбедимо елемент као аргумент који желимо да уклонимо са листе. Уклања прво појављивање елемента са листе.
>>> a = [1, 2, 2, 3, 4] >>> a = [1, 2, 3, 2, 4] >>> a.remove(1) >>> a [2, 3, 2, 4] >>> a.remove(2) >>> a [3, 2, 4]
4. сортирај – метод који се користи за сортирање листе у растућем или опадајућем редоследу.
>>> a = [3, 2, 4, 1] >>> a.sort() >>> a [1, 2, 3, 4] >>> a.sort(reverse=True) >>> a [4, 3, 2, 1]
5. реверсе – метода се користи за преокретање елемената листе.
>>> a = [3, 2, 4, 1] >>> a.reverse() >>> a [1, 4, 2, 3]
Напомена: Постоје и друге методе као што су брисање, уметање, бројање, итд… Не морате да објашњавате анкетару сваки метод листе. Само објасните две или три методе које најчешће користите.
#11. Објасните неке методе низа
1. сплит – метода се користи за цепање низа на жељене тачке. Као резултат враћа листу. Подразумевано, он дели стринг на размаке. Можемо да обезбедимо граничник као аргумент за метод.
>>> a = "This is techblog.co.rs" >>> a.split() ['This', 'is', 'Geekflare'] >>> a = "1, 2, 3, 4, 5, 6" >>> a.split(", ") ['1', '2', '3', '4', '5', '6']
2. јоин – метода се користи за комбиновање листе стринг објеката. Комбинује стринг објекте са граничником који ми дајемо.
>>> a = ['This', 'is', 'Geekflare'] >>> ' '.join(a) 'This is techblog.co.rs' >>> ', '.join(a) 'This, is, techblog.co.rs'
Напомена: Неки други методи стрингова су: велика слова, исалнум, исалпха, исдигит, ловер, горњи, центар, итд.,
#12. Шта је негативно индексирање на листама?
Индекс се користи за приступ елементу са листа. Нормално индексирање листе почиње од 0.
Слично нормалном индексирању, негативно индексирање се такође користи за приступ елементима са листа. Али, негативно индексирање нам омогућава да приступимо индексу са краја листе. Почетак негативног индексирања је -1. И наставља да расте као -2, -3, -4, итд., све до дужине листе.
>>> a = [1, 2, 3, 4, 5] >>> a[-1] 5 >>> a[-3] 3 >>> a[-5] 1
#13. Објасните неке методе диктата
1. ставке – метода враћа кључ: вредност парове речника као листу торки.
>>> a = {1: 'techblog.co.rs', 2: 'techblog.co.rs Tools', 3: 'techblog.co.rs Online Compiler'} >>> a.items() dict_items([(1, 'Geekflare'), (2, 'Geekflare Tools'), (3, 'Geekflare Online Compiler')])
2. поп – метода се користи за уклањање пара кључ: вредност из речника. Прихвата кључ као аргумент и уклања га из речника.
>>> a = {1: 2, 2: 3} >>> a.pop(2) 3 >>> a {1: 2}
Напомена: Неке друге методе дицта су: гет, кеис, валуес, цлеар, итд.
#14. Шта је сечење у Питхон-у?
Сечење се користи за приступ поднизу из типа података секвенце. Враћа податке из типа података секвенце на основу аргумената које пружамо. Враћа исти тип података као изворни тип података.
Сечење прихвата три аргумента. Они су почетни индекс, крајњи индекс и корак повећања. Синтакса сечења је променљива[start:end:step]. Аргументи нису обавезни за сечење. Можете навести празну двотачку (:) која враћа целе податке као резултат.
>>> a = [1, 2, 3, 4, 5] >>> a[:] [1, 2, 3, 4, 5] >>> a[:3] [1, 2, 3] >>> a[3:] [4, 5] >>> a[0:5:2] [1, 3, 5]
#15. Који типови података дозвољавају сечење?
Можемо да користимо сечење на листи, тупле и стр типовима података.
#16. Шта су оператори за распакивање у Питхон-у? Како их користити?
Оператори * и ** су оператори за распакивање у Питхон-у.
Оператор за распакивање * се користи за додељивање више вредности различитим вредностима у исто време из типова података секвенце.
>>> items = [1, 2, 3] >>> a, b, c = items >>> a 1 >>> b 2 >>> c 3 >>> a, *b = items >>> a 1 >>> b [2, 3]
Оператор за распакивање ** се користи са типовима података дицт. Распакивање у речницима не функционише као распакивање са типовима података секвенце.
Распакивање у речницима се углавном користи за копирање кључних: вредности ставки из једног речника у други.
>>> a = {1:2, 3:4} >>> b = {**a} >>> b {1: 2, 3: 4} >>> c = {3:5, 5:6} >>> b = {**a, **c} >>> b {1: 2, 3: 5, 5: 6}
Напомена: Можете погледати овај чланак за више информација о овим оператерима.
Услови и петље
#17. Да ли Питхон има наредбе свитцх?
Не, Питхон нема наредбе свитцх.
#18. Како имплементирате функционалност наредби свитцх у Питхон-у?
Можемо имплементирати функционалност свитцх наредби користећи иф и елиф изјаве.
>>> if a == 1: ... print(...) ... elif a == 2: ... print(....)
#19. Шта су изјаве прекид и наставак?
бреак – наредба бреак се користи за завршетак рунде. Извршење кода ће скочити на спољну страну петље прекида.
>>> for i in range(5): ... if i == 3: ... break ... print(i) ... 0 1 2
цонтинуе – наредба цонтинуе се користи да се прескочи извршење преосталог кода. Код након наредбе цонтинуе се не извршава у тренутној итерацији, а извршење иде на следећу итерацију.
>>> for i in range(5): ... if i == 3: ... continue ... print(i) ... 0 1 2 4
#20. Када се код у елсе извршава са вхиле и фор петљама?
Код унутар блока елсе са петљама вхиле и фор се извршава након извршења свих итерација. А код унутар елсе блока се не извршава када прекинемо петље.
#21. Шта су разумевање листе и речника?
Разумевања листе и речника су синтаксички шећер за фор-петље.
>>> a = [i for i in range(10)] >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a = {i: i + 1 for i in range(10)} >>> a {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10} >>>
#22. Како функционише функција опсега?
Функција опсега враћа низ бројева између почетка и заустављања са кораком. Синтакса функције опсега је опсег (старт, стоп[, step]).
Аргумент стоп је обавезан. Аргументи старт и степ су опциони. Подразумеване вредности за почетак и корак су 0 и 1, респективно.
>>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1, 10)) [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1, 10, 2)) [1, 3, 5, 7, 9] >>>
Функције
#23. Који су параметри и аргументи?
Параметри су имена наведена у дефиницији функције.
Аргументи су вредности које се преносе функцији током позивања.
#24. Које су различите врсте аргумената у Питхон-у?
Постоје углавном четири врсте аргумената. То су позициони аргументи, подразумевани аргументи, аргументи кључних речи и произвољни аргументи.
Позициони аргументи: нормални аргументи које дефинишемо у кориснички дефинисаним функцијама називају се позициони аргументи. Сви позициони аргументи су потребни приликом позивања функције.
>>> def add(a, b): ... return a + b ... >>> add(1, 2) 3 >>> add(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: add() missing 1 required positional argument: 'b' >>>
Подразумевани аргументи: можемо дати вредност аргументима у самој дефиницији функције као подразумевану вредност. Када корисник није проследио вредност, функција ће узети у обзир подразумевану вредност.
>>> def add(a, b=3): ... return a + b ... >>> add(1, 2) 3 >>> add(1) 4
Аргументи кључних речи: можемо навести име аргумената док позивамо функцију и доделити им вредности. Аргументи кључне речи нам помажу да избегнемо редослед који је обавезан у позиционим аргументима.
>>> def add(a, b): ... print("a ", a) ... print("b ", b) ... return a + b ... >>> add(b=4, a=2) a 2 b 4 6
Произвољни аргументи: користимо произвољне аргументе да прикупимо гомилу вредности у тренутку када не знамо број аргумената који ће функција добити. Ми * и ** оператори у дефиницији функције за прикупљање аргумената.
>>> def add(*args): ... return sum(args) ... >>> add(1, 2, 3, 4, 5) 15 >>> def dict_args(**kwargs): ... print(kwargs) ... >>> dict_args(a="techblog.co.rs", b='techblog.co.rs Tools', c="techblog.co.rs Online Compiler") {'a': 'techblog.co.rs', 'b': 'techblog.co.rs Tools', 'c': 'techblog.co.rs Online Compiler'}
#25. Шта је ламбда функција?
Ламбда функције су мале анонимне функције у Питхон-у. Има појединачне изразе и прихвата вишеструке аргументе.
>>> add = lambda a, b: a + b >>> add(1, 3) 4
#26. Која је разлика између нормалне функције и ламбда функције?
Функционалност и нормалних и ламбда функција је слична. Али, морамо да напишемо додатни код у нормалним функцијама у поређењу са ламбда функцијама за исту функционалност.
Ламбда функције су корисне када постоји један израз.
#27. За шта се користи кључна реч пасс?
Кључна реч пасс се користи за помињање празног блока у коду. Питхон нам не дозвољава да напустимо блокове без икаквог кода. Дакле, изјава пасс нам омогућава да дефинишемо празне блокове (када касније одлучимо да попунимо код).
>>> def add(*args): ... ... File "<stdin>", line 3 ^ IndentationError: expected an indented block >>> def add(*args): ... pass ... >>>
#28. Шта је рекурзивна функција?
Сама функција која позива се назива рекурзивна функција.
Шта су оператори за паковање у Питхон-у? Како их користити?
Оператори паковања се користе за прикупљање више аргумената у функцијама. Они су познати као произвољни аргументи.
Напомена: можете погледати овај чланак за више информација о операторима паковања у Питхон-у.
#29. ООП у Питхон-у
Која се кључна реч користи за креирање класа у Питхон-у?
Кључна реч цласс се користи за креирање класа у Питхон-у. Требало би да следимо паскал за именовање класа у Питхон-у као индустријски стандард.
>>> class Car: ... pass ...
#30. Како инстанцирати класу у Питхон-у?
Можемо креирати инстанцу класе у Питхон-у једноставним позивом као функција. Можемо проследити потребне атрибуте за објекат на исти начин као што радимо за аргументе функције.
>>> class Car: ... def __init__(self, color): ... self.color = color ... >>> red_car = Car('red') >>> red_car.color 'red' >>> green_car = Car('green') >>> green_car.color 'green' >>>
#31. Шта је селф у Питхон-у?
Ја представља објекат класе. Користи се за приступ атрибутима објекта и методама унутар класе за одређени објекат.
#32. Шта је __инит__ метода?
__инит__ је конструкторски метод сличан конструкторима у другим ООП језицима. Извршава се одмах када креирамо објекат за класу. Користи се за иницијализацију почетних података за инстанцу.
#33. Шта је доцстринг у Питхон-у?
Документациони низови или доцстрингс се користе за документовање блока кода. Такође се користе као коментари у више редова.
Ови низови докумената се користе у методама класе да опишу шта одређени метод ради. И можемо да видимо метод доцстринг користећи методу помоћи.
>>> class Car: ... def __init__(self, color): ... self.color = color ... ... def change_color(self, updated_color): ... """This method changes the color of the car""" ... self.color = updated_color ... >>> car = Car('red') >>> help(car.change_color) Help on method change_color in module __main__: change_color(updated_color) method of __main__.Car instance This method changes the color of the car >>>
#34. Шта су дундер или магичне методе?
Методе које имају две доње црте префикса и суфикса називају се дундер или магичне методе. Углавном се користе за надјачавање метода. Неке од метода које можемо заменити у класама су __стр__, __лен__, __сетитем__, __гетитем__, итд.,
>>> class Car: ... def __str__(self): ... return "This is a Car class" ... >>> car = Car() >>> print(car) This is a Car class >>>
Напомена: Постоји много других метода које можете заменити. Они су корисни када желите да детаљно прилагодите код. Истражите документацију за више информација.
#35. Како имплементирате наслеђивање у Питхон-у?
Можемо пренети родитељску класу подређеној класи као аргумент. И можемо позвати родитељску класу методе инит у подређеној класи.
>>> class Animal: ... def __init__(self, name): ... self.name = name ... >>> class Animal: e): ... def __init__(self, name): ... self.name = name ... ... def display(self): ... print(self.name) >>> class Dog(Animal): e):ame) ... def __init__(self, name): ... super().__init__(name) ... >>> doggy = Dog('Tommy') >>> doggy.display() Tommy >>>
#36. Како приступити родитељској класи унутар подређене класе у Питхон-у?
Можемо користити супер() који се односи на родитељску класу унутар подређене класе. И помоћу њега можемо приступити атрибутима и методама.
Остало
#37. Како користити коментаре у једном и више редова у Питхон-у?
Користимо хеш (#) за коментаре у једном реду. И троструки једноструки наводники (“’коментар”’) или троструки двоструки наводники (“””коментар”””) за коментаре у више редова.
#38. Шта је објекат у Питхон-у?
Све у Питхон-у је објекат. Сви типови података, функције и класе су објекти.
#39. Која је разлика између ис и ==?
Оператор == се користи за проверу да ли два објекта имају исту вредност или не. Оператор ис се користи за проверу да ли се два објекта односе на исту меморијску локацију или не.
>>> a = [] >>> b = [] >>> c = a >>> a == b True >>> a is b False >>> a is c True >>>
#40. Шта је плитка и дубока копија?
Плитка копија: ствара тачну копију као оригинал без промене референци објеката. Сада се и копирани и оригинални објекти односе на исте референце објеката. Дакле, промена једног објекта ће утицати на други.
За плитку копију се користи метод копирања из модула за копирање.
>>> from copy import copy >>> a = [1, [2, 3]] >>> b = copy(a) >>> a[1].append(4) >>> a [1, [2, 3, 4]] >>> b [1, [2, 3, 4]]
Дубока копија: рекурзивно копира вредности оригиналног објекта у нови објекат. Морамо да користимо функцију сечења или дубоког копирања из модула за копирање за дубоко копирање.
>>> from copy import deepcopy >>> a = [1, [2, 3]] >>> b = deepcopy(a) >>> a[1].append(4) >>> a [1, [2, 3, 4]] >>> b [1, [2, 3]] >>> b[1].append(5) >>> a [1, [2, 3, 4]] >>> b [1, [2, 3, 5]] >>>
#41. Шта су итератори?
Итератори су објекти у Питхон-у који памте своје стање итерације. Иницијализује податке методом __итер__ и враћа следећи елемент помоћу методе __нект__.
Морамо да позовемо нект(итератор) да бисмо добили следећи елемент из итератора. И можемо да конвертујемо тип података секвенце у итератор користећи уграђени метод итер.
>>> a = [1, 2] >>> iterator = iter(a) >>> next(iterator) 1 >>> next(iterator) 2 >>> next(iterator) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration >>>
#42. Шта су генератори?
Генератори су функције које враћају итератор попут објекта генератора. Користи принос за генерисање података.
>>> def numbers(n): ... for i in range(1, n + 1): ... yield i ... >>> _10 = numbers(10) >>> next(_10) 1 >>> next(_10) 2 >>> next(_10) 3 >>> next(_10) 4
Закључак 👨💻
Питања нису ограничена, као што видимо у овом чланку. Овај чланак показује како се различите врсте питања могу постављати из различитих тема у Питхон-у. Али, то није ограничено на скуп питања о којима смо расправљали у овом чланку.
Један од начина да се припремите током учења јесте да се преиспитате о различитим темама. Покушајте да направите различите врсте питања од концепта. И сами одговорите на њих. На овај начин вероватно нећете бити изненађени питањима у интервјуу. Такође можете да погледате онлајн Питхон компајлер да бисте вежбали код.
Све најбоље за ваш предстојећи Питхон интервју! 👍