42 Spørgsmål og svar til Python-interview i realtid [2022]

Forbereder du dig til Python-interviews? Eller bare nysgerrig efter at vide, hvor meget Python du kender? Intet problem. Her dækker vi dine problemer med spørgsmål og svar.

Artiklen vil hjælpe dig med at forstå, hvilken type spørgsmål du kan blive mødt med i interviews. Eller hjælper dig med at evaluere dine Python-færdigheder. Sørg for, at du besvarer spørgsmålene, før du ser svarene, for at vurdere dig selv nøjagtigt. Lad os uden videre dykke ned i spørgsmålene.

Spørgsmålene er opdelt i forskellige sektioner baseret på typen af ​​emner. Hvert afsnit har spørgsmål sammen med kuraterede svar. Du kan ændre svaret med dit eget sprog med samme betydning. Så intervieweren vil ikke føle, at du læser noget.

Indholdsfortegnelse

Python sprog

#1. Hvad er Python?

Python er et fortolket højniveau programmeringssprog til generelle formål. Vi kan bygge næsten enhver form for applikation ved hjælp af Python med tredjeparts biblioteker og rammer. Python er et af de mest populære programmeringssprog inden for avancerede teknologier som AI, Data Science osv.

#2. Hvad er hovedforskellen mellem en tolk og en compiler?

Fortolkeren oversætter en sætning ad gangen til maskinkode, hvorimod compileren oversætter hele koden ad gangen til maskinkode.

#3. Er Python statisk eller dynamisk skrevet sprog?

Python er et dynamisk skrevet sprog.

#4. Hvad mener du med dynamisk skrevet sprog?

Dynamisk indtastede sprog kontrollerer variablerne under kørslen. Nogle dynamisk indtastede sprog er Python, JavaScript, Ruby osv.

Bonus: Statisk indtastede sprog kontrollerer variablerne på kompileringstidspunktet. Nogle statisk indtastede sprog er C++, C, Java osv..,

#5. Giv nogle applikationer af Python.

Python har enklere og nemmere at lære syntaks. Det kan ligne engelsk. Fællesskabet af udviklere til Python er enormt. Vi kan finde mange tredjepartspakker til at arbejde med forskellige typer applikationsudvikling. Når det kommer til udvikling, kan vi lave webapplikationer, GUI applikationer, CLI applikationer osv..,

En af de mest populære applikationer af Python er automatisering. Vi kan nemt oprette scripts i Python for at automatisere opgaver som at rense disk, sende mails, få data om produktpriser osv..,

Python er et af de mest populære sprog at bruge inden for datavidenskab.

#6. Hvilke applikationer byggede du med Python?

Jeg har skrevet flere automatiseringsscripts for at eliminere gentagne og kedelige opgaver. Og scripts til at få information om produktpriser, tilgængelighed osv.

Jeg har også arbejdet med frameworks som Django, Flask til at bygge webapplikationer. Og byg nogle webapplikationer ved hjælp af både Django og Flask.

Bemærk: Ovenstående svar er et eksempel. Dit svar kan være helt anderledes end ovenstående. Prøv at forklare forskellige områder, som du har arbejdet med ved hjælp af Python. Vis applikationerne, hvis de er tilgængelige.

  Sådan ændres sideretning i Google Docs

Datatyper

#7. Hvad er de indbyggede datatyper i Python?

Der er flere indbyggede datatyper i Python. De er int, float, kompleks, bool, list, tuple, set, dict, str.

Bemærk: Du behøver ikke fortælle alle de datatyper, der findes i Python. Nævn nogle af dem, du mest bruger. Intervieweren kan stille spørgsmål baseret på dit svar.

#8. Hvad er forskellen mellem liste og tuple?

Både liste og tuple bruges til at opbevare samlingen af ​​objekter. Den største forskel mellem listen og tuple er “listen er et foranderligt objekt, mens tuple er et uforanderligt objekt”.

#9. Hvad er foranderlige og uforanderlige datatyper?

Foranderlige datatyper kan ændres efter oprettelse af dem. Nogle af de foranderlige objekter i Python er list, set, dict.

Uforanderlige datatyper kan ikke ændres efter oprettelse af dem. Nogle af de uforanderlige objekter i Python er str, tuple.

#10. Forklar nogle metoder på listen.

1. tilføj – metoden bruges til at tilføje et element til listen. Det tilføjer elementet til slutningen af ​​listen.

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

2. pop – metoden bruges til at fjerne et element fra listen. Det vil fjerne det sidste element, hvis vi ikke angiver noget indeks som et argument, eller fjerne elementet ved indekset, hvis vi angiver et 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 bruges til at fjerne et element fra listen. Vi skal angive elementet som et argument, som vi vil fjerne fra listen. Det fjerner den første forekomst af elementet fra listen.

>>> 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. sort – metoden, der bruges til at sortere listen i stigende eller faldende rækkefølge.

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

5. omvendt – metoden bruges til at vende listeelementerne.

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

Bemærk: Der er andre metoder som clear, insert, count, osv… Du behøver ikke at forklare hver metode på listen for intervieweren. Bare forklar to eller tre metoder, som du mest bruger.

#11. Forklar nogle metoder til streng

1. split – metoden bruges til at splitte strengen på ønskede punkter. Det returnerer listen som et resultat. Som standard opdeler den strengen med mellemrum. Vi kan give afgrænsningen som argument for metoden.

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

2. join – metoden bruges til at kombinere listen over strengobjekter. Den kombinerer strengobjekterne med den afgrænser, vi leverer.

>>> a = ['This', 'is', 'Geekflare']
>>> ' '.join(a)
'This is toadmin.dk'
>>> ', '.join(a)
'This, is, toadmin.dk'

Bemærk: Nogle andre metoder til strenge er: stort, isalnum, isalpha, isdigit, nedre, øvre, center osv..,

#12. Hvad er den negative indeksering i lister?

Indekset bruges til at få adgang til elementet fra listerne. Normal indeksering af listen starter fra 0.

I lighed med normal indeksering bruges negativ indeksering også til at få adgang til elementerne fra listerne. Men negativ indeksering giver os adgang til indekset fra slutningen af ​​listen. Starten af ​​den negative indeksering er -1. Og det bliver ved med at stige som -2, -3, -4 osv.., indtil listens længde.

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

#13. Forklar nogle metoder til diktering

1. elementer – metoden returnerer nøgle: værdipar af ordbøger som en liste over tupler.

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

2. pop – metoden bruges til at fjerne nøglen: værdipar fra ordbogen. Den accepterer nøglen som et argument og fjerner den fra ordbogen.

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

Bemærk: Nogle andre metoder til diktering er: get, nøgler, værdier, clear osv.

#14. Hvad er udskæring i Python?

Slicing bruges til at få adgang til underarrayet fra en sekvensdatatype. Det returnerer data fra sekvensdatatypen baseret på de argumenter, vi leverer. Det returnerer den samme datatype som kildedatatypen.

Slicing accepterer tre argumenter. De er startindekset, slutindekset og trintrinnet. Syntaksen for udskæring er variabel[start:end:step]. Argumenter er ikke obligatoriske for udskæring. Du kan angive et tomt kolon (:), som returnerer hele 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. Hvilke datatyper tillader udskæring?

Vi kan bruge udskæring på datatyperne liste, tuple og str.

  Top 28 bedste fejlsporingsværktøjer

#16. Hvad er udpakningsoperatører i Python? Hvordan bruger man dem?

Operatørerne * og ** er udpakningsoperatører i Python.

* udpakningsoperatøren bruges til at tildele flere værdier til forskellige værdier ad gangen fra sekvensdatatyper.

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

Udpakningsoperatøren ** bruges med dict datatyper. Udpakningen i ordbøger fungerer ikke som udpakning med sekvensdatatyper.

Udpakningen i ordbøger bruges mest til at kopiere nøgleværdier fra en ordbog til en anden.

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

Bemærk: Du kan henvise til denne artikel for mere information om disse operatører.

Forhold og løkker

#17. Har Python switch-sætninger?

Nej, Python har ikke switch-sætninger.

#18. Hvordan implementerer du funktionaliteten af ​​switch-sætninger i Python?

Vi kan implementere funktionaliteten af ​​switch-sætninger ved hjælp af if- og elif-sætninger.

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

#19. Hvad er pause og fortsæt udsagn?

break – break-sætningen bruges til at afslutte den løbende løkke. Udførelsen af ​​koden vil springe til ydersiden af ​​break-løkken.

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

fortsæt – continu-sætningen bruges til at springe udførelsen af ​​den resterende kode over. Koden efter continue-sætningen udføres ikke i den aktuelle iteration, og udførelsen går til næste iteration.

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

#20. Hvornår udføres koden ellers med while og for loops?

Koden inde i else-blokken med while og for loops udføres efter udførelse af alle iterationer. Og koden inde i else-blokken udføres ikke, når vi bryder sløjferne.

#21. Hvad er liste- og ordbogsforståelser?

Liste- og ordbogsforståelser er syntaktisk sukker for for-løkkerne.

>>> 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. Hvordan fungerer rækkeviddefunktionen?

Range-funktionen returnerer rækkefølgen af ​​tal mellem start og stop med en trinvis stigning. Syntaksen for områdefunktionen er range(start, stop[, step]).

Stop-argumentet er obligatorisk. Argumenterne start og trin er valgfrie. Standardværdien for start og trin er henholdsvis 0 og 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. Hvad er parametrene og argumenterne?

Parametre er de navne, der er angivet i funktionsdefinitionen.

Argumenter er de værdier, der sendes til funktionen, mens den påberåbes.

#24. Hvad er de forskellige typer argumenter i Python?

Der er hovedsageligt fire typer argumenter. De er positionelle argumenter, standardargumenter, nøgleordsargumenter og vilkårlige argumenter.

Positionelle argumenter: de normale argumenter, som vi definerer i brugerdefinerede funktioner, kaldes positionelle argumenter. Alle positionelle argumenter er påkrævet, mens funktionen aktiveres.

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

Standardargumenter: vi kan angive værdien til argumenterne i selve funktionsdefinitionen som standardværdi. Når brugeren ikke bestod værdien, vil funktionen overveje standardværdien.

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

Nøgleordsargumenter: vi kan angive navnet på argumenterne, mens vi kalder funktionen og tildele værdier til dem. Nøgleordsargumenterne hjælper os med at undgå orden, som er obligatorisk i positionsargumenter.

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

Vilkårlige argumenter: vi bruger vilkårlige argumenter til at indsamle en masse værdier på et tidspunkt, hvor vi ikke kender antallet af argumenter, som funktionen vil få. Vi * og ** operatorer i funktionsdefinitionen til at indsamle argumenterne.

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

#25. Hvad er lambdafunktionen?

Lambda-funktioner er små anonyme funktioner i Python. Det har enkelte udtryk og accepterer flere argumenter.

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

#26. Hvad er forskellen mellem normal funktion og lambda funktion?

Funktionaliteten af ​​både normale funktioner og lambda-funktioner er ens. Men vi skal skrive noget ekstra kode i normale funktioner sammenlignet med lambda-funktioner for den samme funktionalitet.

  Sådan finder du Microsoft Teams-optagelsesstedet

Lambda-funktioner er nyttige, når der er et enkelt udtryk.

#27. Hvad bruges pass-søgeordet til?

Pass nøgleordet bruges til at nævne en tom blok i koden. Python tillader os ikke at forlade blokkene uden nogen kode. Så passerklæringen giver os mulighed for at definere tomme blokke (når vi beslutter os for at udfylde koden senere).

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

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

#28. Hvad er en rekursiv funktion?

Den funktion, der kalder sig selv, kaldes en rekursiv funktion.

Hvad er pakkeoperatører i Python? Hvordan bruger man dem?

Pakningsoperatørerne bruges til at indsamle flere argumenter i funktioner. De er kendt som vilkårlige argumenter.

Bemærk: du kan henvise til denne artikel for mere information om pakningsoperatører i Python.

#29. OOPs i Python

Hvilket nøgleord bruges til at oprette klasser i Python?

Klassenøgleordet bruges til at oprette klasser i Python. Vi bør følge Pascal-sagen for at navngive klasserne i Python som en industristandardpraksis.

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

#30. Hvordan instansierer man en klasse i Python?

Vi kan oprette en forekomst af en klasse i Python ved blot at kalde den som funktion. Vi kan videregive de nødvendige attributter for objektet på samme måde, som vi gør for funktionsargumenter.

>>> 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. Hvad er selv i Python?

Selvet repræsenterer klassens objekt. Det bruges til at få adgang til objektattributterne og metoderne inde i klassen for det bestemte objekt.

#32. Hvad er __init__ metoden?

__init__ er konstruktørmetoden, der ligner konstruktørerne i andre OOP-sprog. Det udføres med det samme, når vi opretter et objekt til klassen. Det bruges til at initialisere de indledende data for instansen.

#33. Hvad er docstring i Python?

Dokumentationsstrengene eller docstrings bruges til at dokumentere en kodeblok. De bruges også som kommentarer med flere linjer.

Disse docstrings bruges i en klasses metoder til at beskrive, hvad en bestemt metode gør. Og vi kan se metoden docstring ved hjælp af hjælpemetoden.

>>> 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. Hvad er dunder eller magiske metoder?

Metoderne med to præfiks- og suffiksunderstregninger kaldes dunder eller magiske metoder. De bruges hovedsageligt til at tilsidesætte metoderne. Nogle af metoderne, som vi kan tilsidesætte i klasser, er __str__, __len__, __setitem__, __getitem__ osv..,

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

Bemærk: Der er mange andre metoder, som du kan tilsidesætte. De er nyttige, når du vil tilpasse koden i dybden. Udforsk dokumentationen for mere information.

#35. Hvordan implementerer du arv i Python?

Vi kan videregive forældreklassen til børneklassen som et argument. Og vi kan påberåbe init-metoden forældreklasse i børneklassen.

>>> 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. Hvordan får man adgang til forældreklassen i børneklassen i Python?

Vi kan bruge super() som refererer til forældreklassen inde i børneklassen. Og vi kan få adgang til attributter og metoder med det.

Diverse

#37. Hvordan bruger man enkeltlinje- og flerlinjekommentarer i Python?

Vi bruger hash (#) til enkeltlinjekommentarer. Og tredobbelte enkelte anførselstegn (“‘kommentar”‘) eller tredobbelte dobbelte anførselstegn (“””kommentarer”””) for kommentarer med flere linjer.

#38. Hvad er et objekt i Python?

Alt i Python er et objekt. Alle datatyper, funktioner og klasser er objekter.

#39. Hvad er forskellen mellem is og ==?

Operatoren == bruges til at kontrollere, om to objekter har samme værdi eller ej. Operatoren is bruges til at kontrollere, om to objekter refererer til den samme hukommelsesplacering eller ej.

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

#40. Hvad er overfladisk og dyb kopi?

Shallow Copy: den opretter den nøjagtige kopi som originalen uden at ændre referencer til objekterne. Nu henviser både kopierede og originale objekter til de samme objektreferencer. Så ændring af et objekt vil påvirke det andet.

Kopimetoden fra kopimodulet bruges til den overfladiske kopi.

>>> 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 kopierer værdierne af det originale objekt rekursivt ind i det nye objekt. Vi skal bruge slicing- eller deepcopy-funktionen fra kopimodulet til den dybe kopiering.

>>> 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. Hvad er iteratorer?

Iteratorer er objekter i Python, som husker deres iterationstilstand. Den initialiserer dataene med __iter__ metoden og returnerer det næste element ved hjælp af __next__ metoden.

Vi skal kalde den næste(iterator) for at få det næste element fra iteratoren. Og vi kan konvertere en sekvensdatatype til en iterator ved hjælp af den indbyggede iter-metode.

>>> 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. Hvad er generatorer?

Generatorer er de funktioner, der returnerer en iterator som et generatorobjekt. Det bruger udbyttet til at generere dataene.

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

Konklusion 👨‍💻

Spørgsmål er ikke begrænset, som vi ser i denne artikel. Denne artikel viser, hvordan forskellige typer spørgsmål kan stilles fra forskellige emner i Python. Men det er ikke begrænset til det sæt af spørgsmål, som vi har diskuteret i denne artikel.

En måde at være forberedt på, mens du lærer, er at spørge dig selv om forskellige emner. Prøv at lave forskellige typer spørgsmål ud fra et koncept. Og svar dem selv. På denne måde vil du sandsynligvis ikke overraske over spørgsmålene i interviewet. Du kan også tjekke online Python-kompileren for at øve koden.

Alt det bedste til dit kommende Python-interview! 👍