42 Întrebări și răspunsuri la interviu Python în timp real [2022]

Vă pregătiți pentru interviurile Python? Sau pur și simplu ești curios să știi cât de mult Python știi? Nici o problemă. Aici acoperim problemele tale cu întrebări și răspunsuri.

Articolul vă va ajuta să înțelegeți ce tip de întrebare vă puteți confrunta în interviuri. Sau vă ajută să vă evaluați abilitățile Python. Asigurați-vă că răspundeți la întrebări înainte de a vedea răspunsurile pentru a vă evalua corect. Fără alte prelungiri, haideți să ne apucăm de întrebări.

Întrebările sunt împărțite în diferite secțiuni în funcție de tipul de subiecte. Fiecare secțiune are întrebări împreună cu răspunsuri organizate. Puteți modifica răspunsul cu limba dvs. cu același sens. Deci, intervievatorul nu va simți că citești ceva.

Cuprins

Limbajul Python

#1. Ce este Python?

Python este un limbaj de programare interpretat la nivel înalt, cu scop general. Putem construi aproape orice tip de aplicație folosind Python cu biblioteci și cadre terțe. Python este unul dintre cele mai populare limbaje de programare în tehnologii avansate precum AI, Data Science etc.

#2. Care este principala diferență dintre un interpret și un compilator?

Interpretul traduce câte o declarație în cod mașină, în timp ce compilatorul traduce întregul cod la un moment dat în codul mașină.

#3. Python este un limbaj tipizat static sau dinamic?

Python este un limbaj tipizat dinamic.

#4. Ce vrei să spui prin limbaj tastatut dinamic?

Limbile tipizate dinamic verifică tipurile de variabile în timpul execuției. Unele limbaje tastate dinamic sunt Python, JavaScript, Ruby etc.

Bonus: Limbile tipizate static verifică tipurile de variabile în timpul compilării. Unele limbaje tipizate static sunt C++, C, Java etc.,

#5. Dați câteva aplicații ale Python.

Python are o sintaxă mai simplă și ușor de învățat. Poate arata asemanator cu engleza. Comunitatea de dezvoltatori pentru Python este imensă. Putem găsi multe pachete terțe care să funcționeze cu diferite tipuri de dezvoltare de aplicații. Când vine vorba de dezvoltare, putem crea aplicații web, aplicații GUI, aplicații CLI etc.,

Una dintre cele mai populare aplicații ale Python este automatizarea. Putem crea cu ușurință scripturi în Python pentru a automatiza sarcini precum curățarea discului, trimiterea de e-mailuri, obținerea de date despre prețurile produselor etc.,

Python este unul dintre cele mai populare limbi de folosit în domeniul științei datelor.

#6. Ce aplicații ați construit folosind Python?

Am scris mai multe scripturi de automatizare pentru a elimina sarcinile repetitive și plictisitoare. Și scripturi pentru a obține informații despre prețurile produselor, disponibilitate etc.

  Cum să faci Pixel Art: Ghidul suprem pentru începători

De asemenea, am lucrat cu cadre precum Django, Flask pentru a construi aplicații web. Și construiți niște aplicații web folosind atât Django, cât și Flask.

Notă: răspunsul de mai sus este un exemplu. Răspunsul tău poate fi complet diferit de cel de mai sus. Încercați să explicați diferitele domenii la care ați lucrat folosind Python. Arată aplicațiile dacă sunt disponibile.

Tipuri de date

#7. Care sunt tipurile de date încorporate în Python?

Există mai multe tipuri de date încorporate în Python. Acestea sunt int, float, complex, bool, list, tuple, set, dict, str.

Notă: nu trebuie să spuneți toate tipurile de date prezente în Python. Menționați câteva dintre ele pe care le folosiți cel mai mult. Intervievatorul poate pune întrebări pe baza răspunsului dumneavoastră.

#8. Care este diferența dintre listă și tuplu?

Atât listă, cât și tuple sunt folosite pentru a stoca colecția de obiecte. Principala diferență dintre listă și tuplu este „lista este un obiect mutabil, în timp ce tuplu este un obiect imuabil”.

#9. Ce sunt tipurile de date mutabile și imuabile?

Tipurile de date modificabile pot fi modificate după crearea lor. Unele dintre obiectele mutabile din Python sunt listă, set, dict.

Tipurile de date imuabile nu pot fi modificate după crearea lor. Unele dintre obiectele imuabile din Python sunt str, tuple.

#10. Explicați câteva metode din listă.

1. append – metoda este folosită pentru a adăuga un element la listă. Acesta adaugă elementul la sfârșitul listei.

>>> a = [1, 2]
>>> a.append(3)
>>> a
[1, 2, 3]

2. pop – metoda este folosită pentru a elimina un element din listă. Acesta va elimina ultimul element dacă nu furnizăm niciun index ca argument sau va elimina elementul din index dacă oferim un argument.

>>> a = [1, 2, 3, 4, 5]
>>> a.pop()
5
>>> a
[1, 2, 3, 4]
>>> a.pop(1)
2
>>> a
[1, 3, 4]

3. remove – metoda este folosită pentru a elimina un element din listă. Trebuie să furnizăm elementul ca argument pe care dorim să-l eliminăm din listă. Îndepărtează prima apariție a elementului din listă.

>>> 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. sortare – metoda folosită pentru sortarea listei în ordine crescătoare sau descrescătoare.

>>> a = [3, 2, 4, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a.sort(reverse=True)
>>> a
[4, 3, 2, 1]

5. invers – metoda este folosită pentru a inversa elementele listei.

>>> a = [3, 2, 4, 1]
>>> a.reverse()
>>> a
[1, 4, 2, 3]

Notă: Există și alte metode, cum ar fi ștergerea, inserarea, numărarea etc… Nu trebuie să explicați fiecare dintre metodele listei intervievatorului. Doar explicați două sau trei metode pe care le utilizați cel mai mult.

#11. Explicați câteva metode de string

1. split – metoda este folosită pentru a împărți șirul în punctele dorite. Acesta returnează lista ca rezultat. În mod implicit, împarte șirul la spații. Putem furniza delimitatorul ca argument pentru metodă.

>>> a = "This is tipstrick.ro"
>>> a.split()
['This', 'is', 'Geekflare']
>>> a = "1, 2, 3, 4, 5, 6"
>>> a.split(", ")
['1', '2', '3', '4', '5', '6']

2. join – metoda este folosită pentru a combina lista de obiecte șir. Combină obiectele șir cu delimitatorul pe care îl oferim.

>>> a = ['This', 'is', 'Geekflare']
>>> ' '.join(a)
'This is tipstrick.ro'
>>> ', '.join(a)
'This, is, tipstrick.ro'

Notă: Alte metode de șiruri sunt: ​​capitalize, isalnum, isalpha, isdigit, lower, upper, center, etc.,

#12. Care este indexarea negativă în liste?

Indexul este folosit pentru a accesa elementul din liste. Indexarea normală a listei începe de la 0.

Similar cu indexarea normală, indexarea negativă este folosită și pentru a accesa elementele din liste. Dar, indexarea negativă ne permite să accesăm indexul de la sfârșitul listei. Începutul indexării negative este -1. Și continuă să crească ca -2, -3, -4, etc., până la lungimea listei.

>>> a = [1, 2, 3, 4, 5]
>>> a[-1]
5
>>> a[-3]
3
>>> a[-5]
1

#13. Explicați câteva metode de dict

1. itemi – metoda returnează perechi cheie: valoare de dicționare ca o listă de tupluri.

>>> a = {1: 'tipstrick.ro', 2: 'tipstrick.ro Tools', 3: 'tipstrick.ro Online Compiler'}
>>> a.items()
dict_items([(1, 'Geekflare'), (2, 'Geekflare Tools'), (3, 'Geekflare Online Compiler')])

2. pop – metoda este folosită pentru a elimina perechea cheie: valoare din dicționar. Acceptă cheia ca argument și o elimină din dicționar.

>>> a = {1: 2, 2: 3}
>>> a.pop(2)
3
>>> a
{1: 2}

Notă: Alte metode de dict sunt: ​​get, keys, values, clear etc.

#14. Ce este tăierea în Python?

Făierea este utilizată pentru a accesa subbary dintr-un tip de date secvență. Returnează datele din tipul de date secvență pe baza argumentelor pe care le oferim. Returnează același tip de date ca tipul de date sursă.

  Cum să participați la o întâlnire de test Zoom

Tăierea acceptă trei argumente. Acestea sunt indicele de început, indicele de sfârșit și pasul de creștere. Sintaxa tăierii este variabilă[start:end:step]. Argumentele nu sunt obligatorii pentru feliere. Puteți specifica două puncte goale (:) care returnează toate datele ca rezultat.

>>> 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. Ce tipuri de date permit tăierea?

Putem folosi slicing pe tipuri de date list, tuple și str.

#16. Ce sunt operatorii de despachetare în Python? Cum să le folosești?

Operatorii * și ** sunt operatori de despachetare în Python.

Operatorul de despachetare * este utilizat pentru a atribui mai multe valori diferitelor valori simultan din tipurile de date secvențe.

>>> items = [1, 2, 3]
>>> a, b, c = items
>>> a
1
>>> b
2
>>> c
3
>>> a, *b = items
>>> a
1
>>> b
[2, 3]

Operatorul de despachetare ** este utilizat cu tipuri de date dict. Dezambalarea în dicționare nu funcționează ca despachetarea cu tipuri de date secvențe.

Dezambalarea în dicționare este folosită în principal pentru a copia elemente cheie: valoare dintr-un dicționar în altul.

>>> 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}

Notă: Puteți consulta acest articol pentru mai multe informații despre acești operatori.

Condiții și bucle

#17. Python are instrucțiuni switch?

Nu, Python nu are instrucțiuni switch.

#18. Cum implementați funcționalitatea declarațiilor switch în Python?

Putem implementa funcționalitatea instrucțiunilor switch folosind instrucțiuni if ​​și elif.

>>> if a == 1:
...     print(...)
... elif a == 2:
...     print(....)

#19. Ce sunt declarațiile break and continue?

break – instrucțiunea break este folosită pentru a termina bucla de rulare. Execuția codului va sări în exteriorul buclei de întrerupere.

>>> for i in range(5):
...     if i == 3:
...             break
...     print(i)
...
0
1
2

continue – instrucțiunea continue este folosită pentru a sări peste execuția codului rămas. Codul de după instrucțiunea continue nu se execută în iterația curentă, iar execuția trece la următoarea iterație.

>>> for i in range(5):
...     if i == 3:
...             continue
...     print(i)
...
0
1
2
4

#20. Când este executat codul din else cu bucle while și for?

Codul din interiorul blocului else cu bucle while și for este executat după executarea tuturor iterațiilor. Și codul din interiorul blocului else nu se execută atunci când întrerupem buclele.

#21. Ce sunt listele și înțelegerile dicționarului?

Lista și înțelegerea dicționarului sunt zahăr sintactic pentru buclele for.

>>> 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. Cum funcționează funcția de gamă?

Funcția range returnează secvența de numere între început și oprire cu un pas. Sintaxa funcției interval este range(start, stop[, step]).

Argumentul stop este obligatoriu. Argumentele start și step sunt opționale. Valoarea implicită a startului și a pasului este 0 și, respectiv, 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]
>>>

Funcții

#23. Care sunt parametrii și argumentele?

Parametrii sunt numele enumerate în definiția funcției.

Argumentele sunt valorile transmise funcției în timpul invocării.

#24. Care sunt diferitele tipuri de argumente în Python?

Există în principal patru tipuri de argumente. Acestea sunt argumente poziționale, argumente implicite, argumente cheie și argumente arbitrare.

Argumente poziționale: argumentele normale pe care le definim în funcțiile definite de utilizator se numesc argumente poziționale. Toate argumentele poziționale sunt necesare la invocarea funcției.

>>> 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'
>>>

Argumente implicite: putem furniza valoarea argumentelor din definiția funcției ca valoare implicită. Când utilizatorul nu a trecut valoarea, funcția va lua în considerare valoarea implicită.

>>> def add(a, b=3):
...     return a + b
...
>>> add(1, 2)
3
>>> add(1)
4

Argumente de cuvinte cheie: putem specifica numele argumentelor în timp ce invocăm funcția și le putem atribui valori. Argumentele cheie ne ajută să evităm ordonarea care este obligatorie în argumentele poziționale.

>>> def add(a, b):
...     print("a ", a)
...     print("b ", b)
...     return a + b
...
>>> add(b=4, a=2)
a  2
b  4
6

Argumente arbitrare: folosim argumente arbitrare pentru a colecta o grămadă de valori într-un moment în care nu știm numărul de argumente pe care o va primi această funcție. Noi operatorii * și ** din definiția funcției pentru a colecta argumentele.

>>> def add(*args):
...     return sum(args)
...
>>> add(1, 2, 3, 4, 5)
15
>>> def dict_args(**kwargs):
...     print(kwargs)
...
>>> dict_args(a="tipstrick.ro", b='tipstrick.ro Tools', c="tipstrick.ro Online Compiler")
{'a': 'tipstrick.ro', 'b': 'tipstrick.ro Tools', 'c': 'tipstrick.ro Online Compiler'}

#25. Ce este funcția lambda?

Funcțiile Lambda sunt mici funcții anonime în Python. Are expresii unice și acceptă mai multe argumente.

>>> add = lambda a, b: a + b
>>> add(1, 3)
4

#26. Care este diferența dintre funcția normală și funcția lambda?

Funcționalitatea atât a funcțiilor normale, cât și a funcțiilor lambda este similară. Dar, trebuie să scriem ceva cod suplimentar în funcțiile normale în comparație cu funcțiile lambda pentru aceeași funcționalitate.

  Ce este Xbox Cloud Gaming (Project xCloud)?

Funcțiile lambda sunt utile atunci când există o singură expresie.

#27. Pentru ce este folosit cuvântul cheie pass?

Cuvântul cheie pass este folosit pentru a menționa un bloc gol în cod. Python nu ne permite să lăsăm blocurile fără niciun cod. Deci, instrucțiunea pass ne permite să definim blocuri goale (când decidem să completăm codul mai târziu).

>>> def add(*args):
...
...
  File "<stdin>", line 3

    ^
IndentationError: expected an indented block
>>> def add(*args):
...     pass
...
>>>

#28. Ce este o funcție recursivă?

Funcția care se autoapelează este numită funcție recursivă.

Ce sunt operatorii de ambalare în Python? Cum să le folosești?

Operatorii de împachetare sunt utilizați pentru a colecta mai multe argumente în funcții. Ele sunt cunoscute ca argumente arbitrare.

Notă: puteți consulta acest articol pentru mai multe informații despre operatorii de ambalare în Python.

#29. OOP în Python

Ce cuvânt cheie este folosit pentru a crea clase în Python?

Cuvântul cheie class este folosit pentru a crea clase în Python. Ar trebui să urmăm cazul pascal pentru denumirea claselor în Python ca o practică standard în industrie.

>>> class Car:
...     pass
...

#30. Cum să instanțiez o clasă în Python?

Putem crea o instanță a unei clase în Python, numind-o ca funcție. Putem transmite atributele necesare pentru obiect în același mod ca și pentru argumentele funcției.

>>> 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. Ce este sinele în Python?

Sinele reprezintă obiectul clasei. Este folosit pentru a accesa atributele și metodele obiectului din interiorul clasei pentru un anumit obiect.

#32. Ce este metoda __init__?

__init__ este metoda constructorului similar cu constructorii din alte limbaje OOP. Se execută imediat când creăm un obiect pentru clasă. Este folosit pentru a inițializa datele inițiale pentru instanță.

#33. Ce este docstring în Python?

Șirurile de documentație sau docstrings sunt folosite pentru a documenta un bloc de cod. Ele sunt, de asemenea, folosite ca comentarii pe mai multe rânduri.

Aceste documente sunt folosite în metodele unei clase pentru a descrie ceea ce face o anumită metodă. Și putem vedea metoda docstring folosind metoda de ajutor.

>>> 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. Ce sunt metodele dunder sau magice?

Metodele care au două litere de subliniere prefixe și sufixe se numesc metode dunder sau magice. Ele sunt utilizate în principal pentru a anula metodele. Unele dintre metodele pe care le putem suprascrie în clase sunt __str__, __len__, __setitem__, __getitem__ etc.,

>>> class Car:
...     def __str__(self):
...             return "This is a Car class"
...
>>> car = Car()
>>> print(car)
This is a Car class
>>>

Notă: Există o mulțime de alte metode pe care le puteți suprascrie. Sunt utile atunci când doriți să personalizați codul în profunzime. Explorați documentația pentru mai multe informații.

#35. Cum implementați moștenirea în Python?

Putem trece clasa părinte la clasa copil ca argument. Și putem invoca clasa părinte a metodei init în clasa copil.

>>> 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. Cum se accesează clasa părinte în clasa copil în Python?

Putem folosi super() care se referă la clasa părinte din clasa copil. Și putem accesa atribute și metode cu el.

Diverse

#37. Cum să utilizați comentariile pe o singură linie și pe mai multe rânduri în Python?

Folosim hash (#) pentru comentariile pe o singură linie. Și ghilimele triple simple („‘comentarii”‘) sau ghilimele duble triple („””comentarii”””) pentru comentariile pe mai multe rânduri.

#38. Ce este un obiect în Python?

Totul în Python este un obiect. Toate tipurile de date, funcțiile și clasele sunt obiecte.

#39. Care este diferența dintre is și ==?

Operatorul == este folosit pentru a verifica dacă două obiecte au aceeași valoare sau nu. Operatorul is este folosit pentru a verifica dacă două obiecte se referă la aceeași locație de memorie sau nu.

>>> a = []
>>> b = []
>>> c = a
>>> a == b
True
>>> a is b
False
>>> a is c
True
>>>

#40. Ce este copierea superficială și profundă?

Copie superficială: creează copia exactă ca originală fără a modifica referințele obiectelor. Acum, atât obiectele copiate, cât și cele originale se referă la aceleași referințe la obiect. Deci, schimbarea unui obiect îl va afecta pe celălalt.

Metoda de copiere din modulul de copiere este utilizată pentru copierea superficială.

>>> 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]]

Deep Copy: copiează recursiv valorile obiectului original în noul obiect. Trebuie să folosim funcția de tăiere sau deepcopy din modulul de copiere pentru copierea profundă.

>>> 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. Ce sunt iteratorii?

Iteratorii sunt obiecte în Python care își amintesc starea de iterație. Inițializează datele cu metoda __iter__ și returnează următorul element folosind metoda __next__.

Trebuie să apelăm următorul (iterator) pentru a obține următorul element de la iterator. Și putem converti un tip de date secvență într-un iterator folosind metoda încorporată iter.

>>> 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. Ce sunt generatoarele?

Generatoarele sunt funcțiile care returnează un iterator ca un obiect generator. Utilizează randamentul pentru a genera datele.

>>> 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

Concluzie 👨‍💻

Întrebările nu sunt limitate, așa cum vedem în acest articol. Acest articol arată cum pot fi adresate diferite tipuri de întrebări din diferite subiecte în Python. Dar, nu se limitează la setul de întrebări pe care le-am discutat în acest articol.

O modalitate de a fi pregătit în timp ce învățați este să vă întrebați pe diferite subiecte. Încercați să formulați diferite tipuri de întrebări dintr-un concept. Și răspundeți-le singur. În acest fel, probabil că nu vei surprinde întrebările din interviu. De asemenea, puteți consulta compilatorul online Python pentru a practica codul.

Toate cele bune pentru viitorul tău interviu Python! 👍