logo

Top 50+ Python-interviewvragen en antwoorden (nieuwste 2024)

Python is de meest gebruikte taal bij topbedrijven zoals Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify en nog veel meer vanwege de prestaties en de krachtige bibliotheken. Om als Python-ontwikkelaar bij deze bedrijven en organisaties binnen te komen, moet je een aantal belangrijke beheersen Interviewvragen voor Python om hun Python Online Assessment Round en Python Interview Round te kraken. Wij hebben een lijst opgesteld van de Top 50 Python-interviewvragen samen met hun antwoorden op aas in interviews.

Interviewvragen voor Python



Inhoudsopgave

Basisvragen voor Python-interviews voor eerstejaarsstudenten

Python is een veelgebruikte programmeertaal voor algemene doeleinden op hoog niveau. Het is in 1991 gemaakt door Guido van Rossum en verder ontwikkeld door de Python Software Foundation. Het is ontworpen met de nadruk op de leesbaarheid van code, en dankzij de syntaxis kunnen programmeurs hun concepten in minder regels code uitdrukken.
Je gebruikt het voor:

  • Systeemscripting
  • Webontwikkeling
  • Spelontwikkeling
  • Software ontwikkeling
  • Complexe wiskunde

2. Wat zijn de voordelen van het gebruik van de Python-taal als hulpmiddel in het huidige scenario?

Hier volgen de voordelen van het gebruik van de Python-taal:



  • Objectgeoriënteerde taal
  • Taal op hoog niveau
  • Dynamisch getypte taal
  • Uitgebreide ondersteuning Bibliotheken
  • Aanwezigheid van modules van derden
  • Open source en gemeenschapsontwikkeling
  • Draagbaar en interactief
  • Draagbaar tussen besturingssystemen

3. Is Python een gecompileerde taal of een geïnterpreteerde taal?

Eigenlijk is Python een gedeeltelijk gecompileerde taal en gedeeltelijk geïnterpreteerde taal. Het compilatiegedeelte wordt eerst gedaan wanneer we onze code uitvoeren en dit zal intern bytecode genereren. Deze bytecode wordt geconverteerd door de virtuele Python-machine (p.v.m) volgens het onderliggende platform (machine + besturingssysteem).

4. Wat doet het ‘#’-symbool in Python?

‘#’ wordt gebruikt om commentaar te geven op alles wat daarna op de regel komt.

6. Hoe worden argumenten doorgegeven op basis van waarde of verwijzing in Python?

Alles in Python is een object en alle variabelen bevatten verwijzingen naar de objecten. De referentiewaarden zijn afhankelijk van de functies; Als gevolg hiervan kunt u de waarde van de referenties niet wijzigen. U kunt de objecten echter wijzigen als deze veranderlijk zijn.

7. Wat is het verschil tussen een set en een woordenboek?

De set is een ongeordende verzameling gegevenstypen die itereerbaar en veranderlijk is en geen dubbele elementen bevat.
Een woordenboek in Python is een geordende verzameling gegevenswaarden, die wordt gebruikt om gegevenswaarden als een kaart op te slaan.

8. Wat is lijstbegrip? Geef een voorbeeld.

Lijstbegrip is een syntaxisconstructie om het maken van een lijst op basis van bestaande iterabelen te vergemakkelijken.

Bijvoorbeeld:

my_list = [i for i in range(1, 10)]>

9. Wat is een lambdafunctie?

Een lambdafunctie is een anonieme functie. Deze functie kan een willekeurig aantal parameters hebben, maar kan slechts één instructie bevatten. Bijvoorbeeld:

a = lambda x, y : x*y print(a(7, 19))>

10. Wat is een pas in Python?

Pass betekent dat er geen bewerking wordt uitgevoerd, of met andere woorden, het is een tijdelijke aanduiding in de samengestelde instructie, waar er een spatie moet staan ​​en daar niets hoeft te worden geschreven.

11. Wat is het verschil tussen / en // in Python?

/ vertegenwoordigt een nauwkeurige deling (resultaat is een getal met drijvende komma), terwijl // een vloerverdeling vertegenwoordigt (resultaat is een geheel getal). Bijvoorbeeld:

5//2 = 2 5/2 = 2.5>

12. Hoe wordt uitzonderlijke afhandeling gedaan in Python?

Er zijn 3 hoofdsleutelwoorden, namelijk proberen, behalve en tenslotte, die worden gebruikt om uitzonderingen op te vangen en het herstelmechanisme dienovereenkomstig af te handelen. Try is het blok van een code dat wordt gecontroleerd op fouten. Behalve dat blok wordt uitgevoerd wanneer er een fout optreedt.

Het mooie van het laatste blok is dat je de code kunt uitvoeren nadat je op een fout hebt geprobeerd. Dit blok wordt uitgevoerd, ongeacht of er een fout is opgetreden of niet. Ten slotte wordt block gebruikt om de vereiste opruimactiviteiten van objecten/variabelen uit te voeren.

13. Wat is de swapcase-functie in Python?

Het is de functie van een string die alle hoofdletters omzet in kleine letters en omgekeerd. Het wordt gebruikt om de bestaande naamval van de string te wijzigen. Deze methode maakt een kopie van de string die alle tekens in de swap-case bevat. Bijvoorbeeld:

string = 'techcodeview.com' string.swapcase() --->'gEEKSFORgEEKS'>

14. Verschil tussen for-lus en while-lus in Python

De for Loop wordt over het algemeen gebruikt om de elementen van verschillende verzamelingstypen te doorlopen, zoals Lijst , Tupel , Set , En Woordenboek . Ontwikkelaars gebruiken een for-lus waarbij zowel de voorwaarden als het einde beginnen. Terwijl de while-lus de daadwerkelijke lusfunctie is die in elke andere programmeertaal wordt gebruikt. Programmeurs gebruiken een Python while-lus waarbij ze alleen de eindvoorwaarden hebben.

15. Kunnen we een functie als argument doorgeven in Python?

Ja, er kunnen verschillende argumenten aan een functie worden doorgegeven, inclusief objecten, variabelen (van dezelfde of verschillende gegevenstypen) en functies. Functies kunnen als parameters aan andere functies worden doorgegeven, omdat het objecten zijn. Functies van hogere orde zijn functies die andere functies als argumenten kunnen aannemen.

Om meer te lezen, raadpleeg het artikel: Functie doorgeven als argument in Python

16. Wat zijn *args en *kwargs?

Om een ​​variabel aantal argumenten door te geven aan een functie in Python, gebruik je de speciale syntaxis *args en **kwargs in de functiespecificatie. Het wordt gebruikt om een ​​argumentenlijst zonder trefwoorden van variabele lengte door te geven. Door de * te gebruiken, wordt de variabele die we associëren met de * itereerbaar, waardoor u er bewerkingen op kunt uitvoeren, zoals er overheen itereren en bewerkingen van hogere orde gebruiken, zoals kaart en filter.

17. Is inspringen vereist in Python?

Ja, inkeping is vereist in Python. A Python interpreter kan worden geïnformeerd dat een groep instructies tot een specifiek codeblok behoort door Python-inspringing te gebruiken. Inspringingen maken de code gemakkelijk leesbaar voor ontwikkelaars in alle programmeertalen, maar in Python is het erg belangrijk om de code in een specifieke volgorde te laten inspringen.

18. Wat is bereik in Python?

De locatie waar we een variabele kunnen vinden en er indien nodig ook toegang toe hebben, wordt de reikwijdte van een variabele genoemd.

tekenreeks naar int converteren
  • Python Lokale variabele: Lokale variabelen zijn variabelen die binnen een functie worden geïnitialiseerd en uniek zijn voor die functie. Het is niet toegankelijk buiten de functie.
  • Python Globale variabelen: Globale variabelen zijn variabelen die buiten elke functie worden gedefinieerd en gedeclareerd en die voor geen enkele functie zijn gespecificeerd.
  • Reikwijdte op moduleniveau: Het verwijst naar de globale objecten van de huidige module die toegankelijk zijn in het programma.
  • Ultraperifere reikwijdte: Het verwijst naar alle ingebouwde namen die het programma kan aanroepen. De naam waarnaar wordt verwezen, bevindt zich als laatste tussen de objecten in dit bereik.

19. Wat is docstring in Python?

Python-documentatiereeksen (of docstrings) bieden een handige manier om documentatie te koppelen aan Python-modules, functies, klassen en methoden.

  • Docstrings declareren: De docstrings worden gedeclareerd met behulp van ‘drievoudige enkele aanhalingstekens’ of drievoudige dubbele aanhalingstekens net onder de klasse-, methode- of functiedeclaratie. Alle functies moeten een docstring hebben.
  • Toegang tot docstrings: De docstrings zijn toegankelijk via de __doc__ methode van het object of via de helpfunctie.

20. Wat is een dynamisch getypeerde taal?

Getypte talen zijn de talen waarin we het type gegevenstype definiëren en dit zal bij de machine bekend zijn tijdens het compileren of tijdens runtime. Getypte talen kunnen in twee categorieën worden ingedeeld:

  • Statisch getypeerde talen: In dit type taal is het gegevenstype van een variabele bekend tijdens het compileren, wat betekent dat de programmeur het gegevenstype van een variabele moet specificeren op het moment dat deze wordt gedeclareerd.
  • Dynamisch getypeerde talen: Dit zijn de talen waarvoor geen vooraf gedefinieerd gegevenstype voor een variabele nodig is, aangezien deze tijdens runtime door de machine zelf wordt geïnterpreteerd. In deze talen wijzen tolken het gegevenstype tijdens runtime toe aan een variabele, afhankelijk van de waarde ervan.

21. Wat is een pauze, doorgaan en slagen in Python?

De verklaring breken wordt gebruikt om de lus of instructie waarin deze aanwezig is te beëindigen. Daarna wordt de controle doorgegeven aan de instructies die na de break-instructie aanwezig zijn, indien beschikbaar.

Doorgaan is ook een luscontrole-instructie, net als de break-instructie. De continue-instructie is tegengesteld aan die van de break-instructie; in plaats van de lus te beëindigen, wordt de volgende iteratie van de lus gedwongen uit te voeren.

Doorgang betekent dat er geen bewerking wordt uitgevoerd, of met andere woorden, het is een tijdelijke aanduiding in de samengestelde instructie, waar er een spatie moet blijven en daar niets hoeft te worden geschreven.

Numeriek: Het numerieke gegevenstype in Python vertegenwoordigt de gegevens met een numerieke waarde. Een numerieke waarde kan een geheel getal, een zwevend getal of een Booleaanse waarde zijn , of zelfs een complex getal.
  • Sequentietype: T Het reeksgegevenstype in Python is de geordende verzameling van vergelijkbare of verschillende gegevenstypen. Er zijn verschillende reekstypen in Python:
  • Toewijzingstypen: In Python kunnen hashbare gegevens worden toegewezen aan willekeurige objecten met behulp van een mapping-object. Er is momenteel slechts één algemeen toewijzingstype: het woordenboek, en toewijzingsobjecten zijn veranderlijk.
  • Typen instellen: In Python, een Set is een ongeordende verzameling gegevenstypen die itereerbaar en veranderlijk is en geen dubbele elementen bevat. De volgorde van de elementen in een set is ongedefinieerd, hoewel deze uit verschillende elementen kan bestaan.
  • 23. Hoe verdiep je een getal in Python?

    De wiskundemodule van Python bevat een methode die kan worden gebruikt om de bodem van een getal te berekenen.

    • vloer() methode in Python retourneert de bodem van x, d.w.z. het grootste gehele getal dat niet groter is dan x.
    • Bovendien retourneert de methode ceil(x) in Python een plafondwaarde van x, dat wil zeggen het kleinste gehele getal groter dan of gelijk aan x.

    Intermediaire Python-interviewvragen

    24. Wat is het verschil tussen xrange- en bereikfuncties?

    range() en xrange() zijn twee functies die kunnen worden gebruikt om een ​​bepaald aantal keren te itereren in for-lussen in Python. In Python 3 is er geen xrange, maar de bereikfunctie gedraagt ​​zich als xrange in Python 2.

    • bereik() – Dit retourneert een lijst met getallen die zijn gemaakt met de functie range().
    • xbereik() – Deze functie retourneert het generatorobject dat kan worden gebruikt om getallen alleen door middel van een lus weer te geven. Het enige specifieke assortiment wordt op aanvraag weergegeven en dus opgeroepen luie evaluatie .

    25. Wat is woordenboekbegrip? Geef een voorbeeld

    Dictionary Comprehension is een syntaxisconstructie om het maken van een woordenboek op basis van de bestaande iterabele te vergemakkelijken.

    Bijvoorbeeld: mijn_dict = {i:i+7 voor i binnen bereik(1, 10)}

    26. Is Tuple-begrip? Zo ja, hoe, en zo nee, waarom?

    (i for i in (1, 2, 3))>

    Tuple-begrip is niet mogelijk in Python, omdat het in een generator terechtkomt en niet in een tupel-begrip.

    27. Onderscheid maken tussen lijst en tupel?

    Laten we de verschillen tussen List en Tuple analyseren:

    Lijst

    • Lijsten zijn veranderlijk gegevenstype.
    • Lijsten verbruiken meer geheugen
    • De lijst is beter voor het uitvoeren van bewerkingen, zoals invoegen en verwijderen.
    • De implicaties van iteraties zijn tijdrovend

    Tupel

    • Tupels zijn onveranderlijk gegevenstype.
    • Tuple verbruikt minder geheugen in vergelijking met de lijst
    • Een Tuple-gegevenstype is geschikt voor toegang tot de elementen
    • De implicatie van iteraties is relatief sneller

    28. Wat is het verschil tussen een oppervlakkige kopie en een diepe kopie?

    Ondiepe kopie wordt gebruikt wanneer een nieuw exemplaartype wordt gemaakt en bewaart waarden die zijn gekopieerd, terwijl diepe kopie waarden opslaat die al zijn gekopieerd.

    Een oppervlakkige kopie zorgt voor een snellere uitvoering van het programma, terwijl een diepe kopie het langzaam maakt.

    29. Welke sorteertechniek wordt gebruikt door de functies sort() en sort() van Python?

    Python gebruikt de Tim Sort algoritme voor sorteren. Het is een stabiele sortering waarvan het ergste geval O(N log N) is. Het is een hybride sorteeralgoritme, afgeleid van merge sort en insertion sort, ontworpen om goed te presteren op veel soorten gegevens uit de echte wereld.

    30. Wat zijn decorateurs?

    Decorateurs zijn een zeer krachtig en nuttig hulpmiddel in Python, omdat ze de specifieke verandering zijn die we in de Python-syntaxis aanbrengen om functies gemakkelijk te wijzigen.

    31. Hoe debug je een Python-programma?

    Door dit commando te gebruiken kunnen we een Python-programma debuggen:

    abstracte klasse versus interface
    $ python -m pdb python-script.py>

    32. Wat zijn iterators in Python?

    In Python worden iterators gebruikt om een ​​groep elementen te herhalen, containers zoals een lijst. Iterators zijn verzamelingen items en kunnen een lijst, tupels of een woordenboek zijn. Python-iterator implementeert __itr__ en de next()-methode om de opgeslagen elementen te herhalen. Over het algemeen gebruiken we lussen om de collecties (lijst, tupel) in Python te doorlopen.

    33. Wat zijn generatoren in Python?

    In Python is de generator een manier die specificeert hoe iterators moeten worden geïmplementeerd. Het is een normale functie, behalve dat het expressie in de functie oplevert. Het implementeert de methoden __itr__ en next() niet en vermindert ook andere overheadkosten.

    Als een functie ten minste een rendementsverklaring bevat, wordt deze een generator. Het trefwoord yield pauzeert de huidige uitvoering door de status ervan op te slaan en hervat deze indien nodig.

    34. Ondersteunt Python meerdere overervingen?

    Python ondersteunt meerdere overervingen, in tegenstelling tot Java. Meerdere overervingen betekenen dat een klasse kan worden afgeleid van meer dan één ouderklasse.

    35. Wat is polymorfisme in Python?

    Polymorfisme betekent het vermogen om meerdere vormen aan te nemen. Dus als de ouderklasse bijvoorbeeld een methode heeft met de naam ABC, kan de kindklasse ook een methode hebben met dezelfde naam ABC, die zijn eigen parameters en variabelen heeft. Python staat polymorfisme toe.

    36. Definieer inkapseling in Python?

    Inkapseling betekent het samenbinden van de code en de gegevens. Een Python-klasse is een voorbeeld van inkapseling.

    38. Hoe wordt geheugenbeheer gedaan in Python?

    Python gebruikt zijn privéheapruimte om het geheugen te beheren. Kortom, alle objecten en datastructuren worden opgeslagen in de privéheapruimte. Zelfs de programmeur heeft geen toegang tot deze privéruimte, aangezien de tolk voor deze ruimte zorgt. Python heeft ook een ingebouwde garbage collector, die al het ongebruikte geheugen recycleert en het geheugen vrijmaakt en beschikbaar maakt voor de heapruimte.

    39. Hoe verwijder ik een bestand met Python?

    We kunnen een bestand verwijderen met Python door de volgende benaderingen te volgen:

    • os.verwijder()
    • os.unlink()

    40. Wat is slicen in Python?

    Python snijden is een stringbewerking voor het extraheren van een deel van de string, of een deel van een lijst. Met deze operator kan men specificeren waar het snijden moet beginnen, waar het moet eindigen, en de stap specificeren. Lijstsegmentatie retourneert een nieuwe lijst uit de bestaande lijst.

    Syntax: Lst[ Initial : End : IndexJump ]>

    41. Wat is een naamruimte in Python?

    Een naamruimte is een naamgevingssysteem dat wordt gebruikt om ervoor te zorgen dat namen uniek zijn om naamconflicten te voorkomen.

    Geavanceerde Python-interviewvragen en antwoorden

    42. Wat is PIP?

    PIP is een acroniem voor Python Installer Package dat een naadloze interface biedt om verschillende Python-modules te installeren. Het is een opdrachtregelprogramma dat via internet naar pakketten kan zoeken en deze kan installeren zonder enige gebruikersinteractie.

    43. Wat is een zip-functie?

    De Python-functie zip() retourneert een zip-object, dat een vergelijkbare index van meerdere containers in kaart brengt. Er is een iterabele nodig, deze wordt omgezet in een iterator en de elementen worden samengevoegd op basis van de doorgegeven iterabelen. Het retourneert een iterator van tupels.

    44. Wat zijn beitsen en ontbeitsen?

    De Pickle-module accepteert elk Python-object en converteert het naar een stringrepresentatie en dumpt het in een bestand met behulp van de dumpfunctie. Dit proces wordt beitsen genoemd. Terwijl het proces van het ophalen van originele Python-objecten uit de opgeslagen tekenreeksrepresentatie unpickling wordt genoemd.

    45. Wat is monkey-patching in Python?

    In Python verwijst de term monkey-patch alleen naar dynamische wijzigingen van een klasse of module tijdens runtime.

    # g.py class GeeksClass:  def function(self):  print 'function()'  import m def monkey_function(self):  print 'monkey_function()'   m.GeeksClass.function = monkey_function obj = m.GeeksClass() obj.function()>

    46. ​​Wat is __init__() in Python?

    Equivalent aan constructors in OOP-terminologie, is __init__ een gereserveerde methode in Python-klassen. De methode __init__ wordt automatisch aangeroepen wanneer een nieuw object wordt geïnitieerd. Deze methode wijst geheugen toe aan het nieuwe object zodra het is gemaakt. Deze methode kan ook worden gebruikt om variabelen te initialiseren.

    47. Een code schrijven om de huidige tijd weer te geven?

    import time  currenttime= time.localtime(time.time()) print (Current time is, currenttime)>

    48. Wat zijn toegangsspecificaties in Python?

    Python gebruikt het ‘_’-symbool om de toegangscontrole voor een specifiek datalid of een lidfunctie van een klasse te bepalen. Een klasse in Python heeft drie soorten Python-toegangsmodificatoren :

    • Modificator voor openbare toegang: De leden van een klasse die openbaar zijn verklaard, zijn gemakkelijk toegankelijk vanuit elk deel van het programma. Alle gegevensleden en lidfuncties van een klasse zijn standaard openbaar.
    • Beschermde toegangsmodificator: De leden van een klasse die beschermd zijn verklaard, zijn alleen toegankelijk voor een klasse die daarvan is afgeleid. Alle gegevensleden van een klasse worden beschermd verklaard door een enkel onderstrepingsteken ‘_’ toe te voegen vóór de gegevensleden van die klasse.
    • Modificator voor privétoegang: De leden van een klasse die privé zijn verklaard, zijn alleen toegankelijk binnen de klasse. De privétoegangsmodificator is de veiligste toegangsmodificator. Gegevensleden van een klasse worden privé verklaard door een dubbel onderstrepingsteken ‘__’ toe te voegen vóór het gegevenslid van die klasse.

    49. Wat zijn unit-tests in Python?

    Unit Testing is het eerste niveau van softwaretesten waarbij de kleinste testbare delen van de software worden getest. Dit wordt gebruikt om te valideren dat elke eenheid van de software presteert zoals ontworpen. Het unit-testframework is het xUnit-stijlframework van Python. Voor het testen van eenheden wordt de White Box Testing-methode gebruikt.

    50. Python Global Interpreter Lock (GIL)?

    Python Global Interpreter Lock (GIL) is een type procesvergrendeling dat door Python wordt gebruikt wanneer het met processen te maken heeft. Over het algemeen gebruikt Python slechts één thread om de reeks geschreven instructies uit te voeren. De prestaties van het single-threaded proces en het multi-threaded proces zullen hetzelfde zijn in Python en dit komt door GIL in Python. We kunnen geen multithreading bereiken in Python omdat we een globale interpreter-lock hebben die de threads beperkt en als een enkele thread werkt.

    51. Wat zijn functieannotaties in Python?

    Functieannotatie is een functie waarmee u metagegevens kunt toevoegen aan functieparameters en waarden kunt retourneren. Op deze manier kunt u het invoertype van de functieparameters opgeven en het retourtype van de waarde die de functie retourneert.

    Functieannotaties zijn willekeurige Python-expressies die zijn gekoppeld aan verschillende delen van functies. Deze expressies worden geëvalueerd tijdens het compileren en hebben geen leven in de runtime-omgeving van Python. Python hecht geen enkele betekenis aan deze annotaties. Ze nemen leven wanneer ze worden geïnterpreteerd door bibliotheken van derden, bijvoorbeeld mypy.

    52. Wat zijn uitzonderingsgroepen in Python?

    De nieuwste functie van Python 3.11, Uitzonderingsgroepen . De ExceptionGroup kan worden afgehandeld met behulp van een nieuwe Except*-syntaxis. Het *-symbool geeft aan dat er meerdere uitzonderingen kunnen worden afgehandeld door elke exception*-clausule.

    ExceptionGroup is een verzameling/groep van verschillende soorten Exception. Zonder meerdere uitzonderingen te maken, kunnen we verschillende uitzonderingen groeperen die we later één voor één kunnen ophalen wanneer dat nodig is. De volgorde waarin de uitzonderingen worden opgeslagen in de uitzonderingsgroep doet er niet toe wanneer u ze aanroept.

    Python3
    try: raise ExceptionGroup('Example ExceptionGroup', ( TypeError('Example TypeError'), ValueError('Example ValueError'), KeyError('Example KeyError'), AttributeError('Example AttributeError') )) except* TypeError: ... except* ValueError as e: ... except* (KeyError, AttributeError) as e: ...>

    53. Wat is de Python Switch-verklaring

    Vanaf versie 3.10 heeft Python een switch-case-functie geïmplementeerd die structurele patroonmatching wordt genoemd. U kunt deze functie implementeren met de zoekwoorden match en case. Merk op dat het onderstrepingsteken is wat u gebruikt om een ​​standaardgeval te definiëren voor de switch-instructie in Python.

    Opmerking : Vóór Python 3.10 ondersteunt Python geen matchverklaringen.

    Python3
    match term: case pattern-1: action-1 case pattern-2: action-2 case pattern-3: action-3 case _: action-default>

    54. Wat is Walrus Operator?

    De Walrus-operator Hiermee kunt u een waarde toewijzen aan een variabele binnen een expressie. Dit kan handig zijn als u een waarde meerdere keren in een lus moet gebruiken, maar de berekening niet wilt herhalen.

    De Walrus-operator wordt weergegeven door de syntaxis `:=` en kan in verschillende contexten worden gebruikt, inclusief while-lussen en if-instructies.

    Opmerking: Python-versies vóór 3.8 ondersteunen Walrus Operator niet.

    Python3
    names = ['Jacob', 'Joe', 'Jim'] if (name := input('Enter a name: ')) in names: print(f'Hello, {name}!') else: print('Name not found.')>


    ongeordende_map c++