42 Realtids Python-intervjufrågor och svar [2022]

Förbereder du dig för Python-intervjuer? Eller bara nyfiken på hur mycket Python du kan? Inga problem. Här täcker vi dina problem med frågor och svar.

Artikeln hjälper dig att förstå vilken typ av fråga du kan möta i intervjuer. Eller hjälper dig att utvärdera dina Python-färdigheter. Se till att du svarar på frågorna innan du ser svaren för att utvärdera dig själv korrekt. Låt oss utan vidare begrunda frågorna.

Frågorna är indelade i olika avsnitt baserat på typen av ämnen. Varje avsnitt har frågor tillsammans med kurerade svar. Du kan ändra svaret med ditt eget språk med samma innebörd. Så intervjuaren kommer inte att känna att du läser något.

Innehållsförteckning

Python språk

#1. Vad är Python?

Python är ett tolkat högnivå, allmänt programmeringsspråk. Vi kan bygga nästan alla typer av applikationer med Python med tredjepartsbibliotek och ramverk. Python är ett av de mest populära programmeringsspråken inom avancerad teknik som AI, Data Science, etc.

#2. Vad är den största skillnaden mellan en tolk och en kompilator?

Tolken översätter en sats åt gången till maskinkod, medan kompilatorn översätter hela koden åt gången till maskinkod.

#3. Är Python statiskt eller dynamiskt skrivet språk?

Python är ett dynamiskt skrivet språk.

#4. Vad menar du med dynamiskt skrivet språk?

Dynamiskt skrivna språk kontrollerar typerna av variabler vid körning. Några dynamiskt typade språk är Python, JavaScript, Ruby, etc.

Bonus: Statiskt skrivna språk kontrollerar typerna av variabler vid kompilering. Vissa statiskt skrivna språk är C++, C, Java, etc.,

#5. Ge några tillämpningar av Python.

Python har enklare och lättläst syntax. Det kan se ut som på engelska. Gemenskapen av utvecklare för Python är enorm. Vi kan hitta många tredjepartspaket för att arbeta med olika typer av applikationsutveckling. När det kommer till utveckling kan vi skapa webbapplikationer, GUI-applikationer, CLI-applikationer, etc.,

En av de mest populära tillämpningarna av Python är automatisering. Vi kan enkelt skapa skript i Python för att automatisera uppgifter som att rengöra disk, skicka e-post, få data om produktpriser, etc.,

Python är ett av de mest populära språken att använda inom datavetenskap.

#6. Vilka applikationer byggde du med Python?

Jag har skrivit flera automatiseringsskript för att eliminera repetitiva och tråkiga uppgifter. Och skript för att få information om produktpriser, tillgänglighet osv.

Jag har även arbetat med ramverken som Django, Flask för att bygga webbapplikationer. Och bygg några webbapplikationer med både Django och Flask.

Obs: Svaret ovan är ett exempel. Ditt svar kan vara helt annorlunda än det ovan. Försök att förklara olika områden som du har arbetat med med Python. Visa applikationerna om de är tillgängliga.

Datatyper

#7. Vilka är de inbyggda datatyperna i Python?

Det finns flera inbyggda datatyper i Python. De är int, float, komplex, bool, list, tuple, set, dict, str.

Obs: Du behöver inte berätta för alla datatyper som finns i Python. Nämn några av dem du mest använder. Intervjuaren kan ställa frågor baserat på ditt svar.

#8. Vad är skillnaden mellan lista och tupel?

Både list och tupel används för att lagra samlingen av föremål. Huvudskillnaden mellan listan och tuppel är ”listan är föränderligt objekt medan tupel är ett oföränderligt objekt”.

#9. Vad är föränderliga och oföränderliga datatyper?

Föränderliga datatyper kan ändras efter att de har skapats. Några av de föränderliga objekten i Python är list, set, dict.

Oföränderliga datatyper kan inte ändras efter att de har skapats. Några av de oföränderliga objekten i Python är str, tuple.

#10. Förklara några metoder i listan.

1. append – metoden används för att lägga till ett element i listan. Det lägger till elementet i slutet av listan.

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

2. pop – metoden används för att ta bort ett element från listan. Det tar bort det sista elementet om vi inte tillhandahåller något index som ett argument eller tar bort elementet vid indexet om vi tillhandahåller ett 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 – metoden används för att ta bort ett element från listan. Vi måste tillhandahålla elementet som ett argument som vi vill ta bort från listan. Den tar bort den första förekomsten av elementet från listan.

>>> 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. sortera – metoden som används för att sortera listan i stigande eller fallande ordning.

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

5. reverse – metoden används för att vända listelementen.

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

Notera: Det finns andra metoder som rensa, infoga, räkna, etc… Du behöver inte förklara alla metoder i listan för intervjuaren. Förklara bara två eller tre metoder som du oftast använder.

#11. Förklara några metoder för sträng

1. split – metoden används för att dela strängen på önskade punkter. Det returnerar listan som ett resultat. Som standard delar den upp strängen med mellanslag. Vi kan ge avgränsaren som ett argument för metoden.

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

2. join – metoden används för att kombinera listan med strängobjekt. Den kombinerar strängobjekten med avgränsaren vi tillhandahåller.

>>> a = ['This', 'is', 'Geekflare']
>>> ' '.join(a)
'This is adminvista.com'
>>> ', '.join(a)
'This, is, adminvista.com'

Obs: Några andra metoder för strängar är: versaler, isalnum, isalpha, isdigit, nedre, övre, center, etc.,

#12. Vad är den negativa indexeringen i listor?

Indexet används för att komma åt elementet från listorna. Normal indexering av listan börjar från 0.

I likhet med normal indexering används negativ indexering också för att komma åt elementen från listorna. Men negativ indexering tillåter oss att komma åt indexet från slutet av listan. Början av den negativa indexeringen är -1. Och det fortsätter att öka som -2, -3, -4, etc.., tills listans längd.

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

#13. Förklara några metoder för dict

1. objekt – metoden returnerar nyckel: värdepar av ordböcker som en lista över tupler.

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

2. pop – metoden används för att ta bort nyckeln: värdeparet från ordboken. Den accepterar nyckeln som ett argument och tar bort den från ordlistan.

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

Notera: Några andra metoder för dict är: get, keys, values, clear, etc.

#14. Vad är skivning i Python?

Slicing används för att komma åt subarrayen från en sekvensdatatyp. Den returnerar data från sekvensdatatypen baserat på de argument vi tillhandahåller. Den returnerar samma datatyp som källdatatypen.

Slicing accepterar tre argument. De är startindex, slutindex och inkrementsteget. Syntaxen för skivning är variabel[start:end:step]. Argument är inte obligatoriska för skivning. Du kan ange ett tomt kolon (:) som returnerar hela data som resultat.

>>> 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. Vilka datatyper tillåter skivning?

Vi kan använda skivning på datatyperna list, tuple och str.

#16. Vad är uppackningsoperatörer i Python? Hur använder man dem?

Operatörerna * och ** packar upp operatorer i Python.

* uppackningsoperatorn används för att tilldela flera värden till olika värden åt gången från sekvensdatatyper.

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

Operatören ** uppackning används med dict-datatyper. Uppackningen i ordböcker fungerar inte som att packa upp med sekvensdatatyper.

Uppackningen i ordböcker används mest för att kopiera nyckel: värdeobjekt från en ordbok till en annan.

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

Obs! Du kan läsa den här artikeln för mer information om dessa operatörer.

Villkor och loopar

#17. Har Python switch-satser?

Nej, Python har inte switch-satser.

#18. Hur implementerar du funktionaliteten för switch-satser i Python?

Vi kan implementera funktionaliteten hos switch-satser med if och elif-satser.

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

#19. Vad är paus och fortsätt uttalanden?

break – break-satsen används för att avsluta löpslingan. Exekveringen av koden kommer att hoppa till utsidan av break-loopen.

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

continue – continu-satsen används för att hoppa över körningen av den återstående koden. Koden efter continu-satsen körs inte i den aktuella iterationen, och exekveringen går till nästa iteration.

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

#20. När exekveras koden annars med while och for loops?

Koden inuti else-blocket med while och for loops exekveras efter att alla iterationer har körts. Och koden inuti else-blocket körs inte när vi bryter slingorna.

#21. Vad är list- och ordboksförståelser?

List- och ordboksförståelser är syntaktisk socker för for-looparna.

>>> 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. Hur fungerar räckviddsfunktionen?

Range-funktionen returnerar sekvensen av siffror mellan start och stopp med en stegvis ökning. Syntaxen för intervallfunktionen är range(start, stop[, step]).

Argumentet stopp är obligatoriskt. Argumenten start och steg är valfria. Standardvärdet för start och steg är 0 respektive 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]
>>>

Funktioner

#23. Vilka är parametrarna och argumenten?

Parametrar är de namn som anges i funktionsdefinitionen.

Argument är de värden som skickas till funktionen när den anropas.

#24. Vilka är de olika typerna av argument i Python?

Det finns i huvudsak fyra typer av argument. De är positionsargument, standardargument, nyckelordsargument och godtyckliga argument.

Positionella argument: de normala argumenten som vi definierar i användardefinierade funktioner kallas positionsargument. Alla positionsargument krävs när funktionen anropas.

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

Standardargument: vi kan tillhandahålla värdet till argumenten i själva funktionsdefinitionen som standardvärde. När användaren inte klarade värdet kommer funktionen att överväga standardvärdet.

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

Nyckelordsargument: vi kan ange namnet på argumenten medan vi anropar funktionen och tilldela värden till dem. Nyckelordsargumenten hjälper oss att undvika ordning som är obligatoriskt i positionsargument.

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

Godtyckliga argument: vi använder godtyckliga argument för att samla in ett gäng värden vid en tidpunkt då vi inte vet hur många argument som funktionen kommer att få. Vi * och ** operatorer i funktionsdefinitionen för att samla in argumenten.

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

#25. Vad är lambdafunktionen?

Lambdafunktioner är små anonyma funktioner i Python. Den har enstaka uttryck och accepterar flera argument.

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

#26. Vad är skillnaden mellan normal funktion och lambdafunktion?

Funktionaliteten hos både normala funktioner och lambdafunktioner är likartade. Men vi måste skriva lite extra kod i normala funktioner jämfört med lambdafunktioner för samma funktionalitet.

Lambdafunktioner kommer väl till pass när det finns ett enda uttryck.

#27. Vad används nyckelordet för pass till?

Nyckelordet pass används för att nämna ett tomt block i koden. Python tillåter oss inte att lämna blocken utan någon kod. Så, passutdraget tillåter oss att definiera tomma block (när vi bestämmer oss för att fylla i koden senare).

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

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

#28. Vad är en rekursiv funktion?

Funktionen som anropar sig själv kallas en rekursiv funktion.

Vad är packningsoperatörer i Python? Hur använder man dem?

Packningsoperatorerna används för att samla in flera argument i funktioner. De är kända som godtyckliga argument.

Obs: du kan hänvisa till den här artikeln för mer information om packningsoperatörer i Python.

#29. OOPs i Python

Vilket nyckelord används för att skapa klasser i Python?

Klassnyckelordet används för att skapa klasser i Python. Vi bör följa Pascals fall för att namnge klasserna i Python som en branschstandardpraxis.

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

#30. Hur instansierar man en klass i Python?

Vi kan skapa en instans av en klass i Python genom att helt enkelt kalla den som funktion. Vi kan skicka de nödvändiga attributen för objektet på samma sätt som vi gör för funktionsargument.

>>> 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. Vad är själv i Python?

Jaget representerar klassens objekt. Den används för att komma åt objektattributen och metoderna i klassen för det specifika objektet.

#32. Vad är metoden __init__?

__init__ är konstruktormetoden som liknar konstruktörerna i andra OOP-språk. Det körs omedelbart när vi skapar ett objekt för klassen. Den används för att initiera initialdata för instansen.

#33. Vad är docstring i Python?

Dokumentationssträngarna eller docstrings används för att dokumentera ett kodblock. De används också som kommentarer med flera rader.

Dessa docstrings används i en klasss metoder för att beskriva vad en viss metod gör. Och vi kan se metoden docstring med hjälp av hjälpmetoden.

>>> 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. Vad är dunder eller magiska metoder?

Metoderna som har två prefix och suffix understreck kallas dunder eller magiska metoder. De används främst för att åsidosätta metoderna. Några av metoderna som vi kan åsidosätta i klasser är __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
>>>

Obs: Det finns många andra metoder som du kan åsidosätta. De kommer väl till pass när du vill anpassa koden på djupet. Utforska dokumentationen för mer information.

#35. Hur implementerar du arv i Python?

Vi kan skicka föräldraklassen till barnklassen som ett argument. Och vi kan anropa init-metoden föräldraklass i barnklassen.

>>> 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. Hur får man tillgång till föräldraklass i barnklass i Python?

Vi kan använda super() som refererar till föräldraklassen i barnklassen. Och vi kan komma åt attribut och metoder med den.

Diverse

#37. Hur använder man enradiga och flerradiga kommentarer i Python?

Vi använder hash (#) för kommentarer på en rad. Och tredubbla enkla citattecken (”’kommentar”’) eller tredubbla citattecken (”””kommentar”””) för kommentarer med flera rader.

#38. Vad är ett objekt i Python?

Allt i Python är ett objekt. Alla datatyper, funktioner och klasser är objekt.

#39. Vad är skillnaden mellan is och ==?

Operatorn == används för att kontrollera om två objekt har samma värde eller inte. Operatorn is används för att kontrollera om två objekt hänvisar till samma minnesplats eller inte.

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

#40. Vad är ytlig och djup kopia?

Grund kopia: den skapar den exakta kopian som originalet utan att ändra referenser till objekten. Nu hänvisar både kopierade och originalobjekt till samma objektreferenser. Så att ändra ett objekt kommer att påverka det andra.

Kopieringsmetoden från kopieringsmodulen används för den grunda kopian.

>>> 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: den kopierar värdena för det ursprungliga objektet rekursivt till det nya objektet. Vi måste använda skivnings- eller djupkopieringsfunktionen från kopieringsmodulen för djupkopieringen.

>>> 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. Vad är iteratorer?

Iteratorer är objekt i Python som minns deras iterationstillstånd. Den initierar data med metoden __iter__ och returnerar nästa element med metoden __next__.

Vi måste anropa nästa(iterator) för att få nästa element från iteratorn. Och vi kan konvertera en sekvensdatatyp till en iterator med den inbyggda iter-metoden.

>>> 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. Vad är generatorer?

Generatorer är de funktioner som returnerar en iterator som ett generatorobjekt. Den använder avkastningen för att generera data.

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

Slutsats 👨‍💻

Frågor är inte begränsade, som vi ser i den här artikeln. Den här artikeln visar hur olika typer av frågor kan ställas från olika ämnen i Python. Men det är inte begränsat till den uppsättning frågor som vi har diskuterat i den här artikeln.

Ett sätt att vara förberedd när du lär dig är att ifrågasätta dig själv om olika ämnen. Försök att göra olika typer av frågor från ett koncept. Och svara på dem själv. På så sätt kommer du förmodligen inte att förvånas av frågorna i intervjun. Du kan också kolla in Python-kompilatorn online för att öva på koden.

Allt gott för din kommande Python-intervju! 👍