42 Domande e risposte per interviste Python in tempo reale [2022]

Ti stai preparando per le interviste Python? O semplicemente curioso di sapere quanto Python conosci? Nessun problema. Qui copriamo i tuoi problemi con domande e risposte.

L’articolo ti aiuterà a capire che tipo di domanda potresti dover affrontare nelle interviste. O ti aiuta a valutare le tue abilità in Python. Assicurati di rispondere alle domande prima di vedere le risposte per valutare te stesso con precisione. Senza ulteriori indugi, entriamo nelle domande.

Le domande sono suddivise in diverse sezioni in base al tipo di argomenti. Ogni sezione contiene domande insieme a risposte curate. Puoi modificare la risposta con la tua lingua con lo stesso significato. Quindi, l’intervistatore non sentirà che stai leggendo qualcosa.

Sommario:

Linguaggio Python

# 1. Cos’è Python?

Python è un linguaggio di programmazione generico e interpretato di alto livello. Possiamo creare quasi ogni tipo di applicazione usando Python con librerie e framework di terze parti. Python è uno dei linguaggi di programmazione più popolari nelle tecnologie avanzate come AI, Data Science, ecc.

#2. Qual è la differenza principale tra un interprete e un compilatore?

L’interprete traduce un’istruzione alla volta in codice macchina, mentre il compilatore traduce l’intero codice alla volta in codice macchina.

#3. Python è un linguaggio tipizzato staticamente o tipizzato dinamicamente?

Python è un linguaggio tipizzato dinamicamente.

#4. Cosa intendi per lingua digitata dinamicamente?

I linguaggi tipizzati dinamicamente controllano i tipi di variabili in fase di esecuzione. Alcuni linguaggi tipizzati dinamicamente sono Python, JavaScript, Ruby, ecc.

Bonus: i linguaggi tipizzati staticamente controllano i tipi di variabili in fase di compilazione. Alcuni linguaggi tipizzati staticamente sono C++, C, Java, ecc.,

#5. Fornisci alcune applicazioni di Python.

Python ha una sintassi più semplice e facile da imparare. Potrebbe sembrare simile all’inglese. La comunità di sviluppatori per Python è enorme. Possiamo trovare molti pacchetti di terze parti per lavorare con diversi tipi di sviluppo di applicazioni. Quando si tratta di sviluppo, possiamo creare applicazioni web, applicazioni GUI, applicazioni CLI, ecc.,

Una delle applicazioni più popolari di Python è l’automazione. Possiamo facilmente creare script in Python per automatizzare attività come pulire il disco, inviare e-mail, ottenere dati sui prezzi dei prodotti, ecc.,

Python è uno dei linguaggi più popolari da utilizzare nel campo della scienza dei dati.

#6. Quali applicazioni hai creato usando Python?

Ho scritto più script di automazione per eliminare attività ripetitive e noiose. E script per ottenere informazioni su prezzi dei prodotti, disponibilità, ecc.

Ho anche lavorato con framework come Django, Flask per creare applicazioni web. E crea alcune applicazioni web usando sia Django che Flask.

Nota: la risposta sopra è un esempio. La tua risposta potrebbe essere completamente diversa da quella sopra. Prova a spiegare diverse aree su cui hai lavorato usando Python. Mostra le applicazioni se sono disponibili.

Tipi di dati

#7. Quali sono i tipi di dati integrati in Python?

Ci sono più tipi di dati integrati in Python. Sono int, float, complex, bool, list, tuple, set, dict, str.

Nota: non devi dire a tutti i tipi di dati presenti in Python. Menziona alcuni di loro che usi principalmente. L’intervistatore può porre domande in base alla tua risposta.

#8. Qual è la differenza tra lista e tupla?

Sia l’elenco che la tupla vengono utilizzati per archiviare la raccolta di oggetti. La principale differenza tra l’elenco e la tupla è “l’elenco è un oggetto mutabile mentre la tupla è un oggetto immutabile”.

#9. Cosa sono i tipi di dati mutabili e immutabili?

I tipi di dati modificabili possono essere modificati dopo averli creati. Alcuni degli oggetti mutabili in Python sono list, set, dict.

I tipi di dati immutabili non possono essere modificati dopo averli creati. Alcuni degli oggetti immutabili in Python sono str, tuple.

# 10. Spiega alcuni metodi dell’elenco.

1. append – il metodo viene utilizzato per aggiungere un elemento all’elenco. Aggiunge l’elemento alla fine dell’elenco.

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

2. pop – il metodo viene utilizzato per rimuovere un elemento dall’elenco. Rimuoverà l’ultimo elemento se non forniamo alcun indice come argomento o rimuoverà l’elemento nell’indice se forniamo un argomento.

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

3. remove – il metodo viene utilizzato per rimuovere un elemento dall’elenco. Dobbiamo fornire l’elemento come argomento che vogliamo rimuovere dall’elenco. Rimuove la prima occorrenza dell’elemento dall’elenco.

>>> 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 – il metodo utilizzato per ordinare l’elenco in ordine crescente o decrescente.

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

5. reverse – il metodo viene utilizzato per invertire gli elementi dell’elenco.

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

Nota: ci sono altri metodi come clear, insert, count, ecc… Non è necessario spiegare ogni metodo dell’elenco all’intervistatore. Spiega solo due o tre metodi che usi principalmente.

# 11. Spiega alcuni metodi di stringa

1. split – il metodo viene utilizzato per dividere la stringa nei punti desiderati. Restituisce l’elenco come risultato. Per impostazione predefinita, divide la stringa in spazi. Possiamo fornire il delimitatore come argomento per il metodo.

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

2. join – il metodo viene utilizzato per combinare l’elenco di oggetti stringa. Combina gli oggetti stringa con il delimitatore che forniamo.

>>> a = ['This', 'is', 'Geekflare']
>>> ' '.join(a)
'This is winadmin.it'
>>> ', '.join(a)
'This, is, winadmin.it'

Nota: alcuni altri metodi di stringhe sono: capitalize, isalnum, isalpha, isdigit, lower, upper, center, ecc.,

# 12. Qual è l’indicizzazione negativa negli elenchi?

L’indice viene utilizzato per accedere all’elemento dagli elenchi. L’indicizzazione normale dell’elenco inizia da 0.

Analogamente all’indicizzazione normale, anche l’indicizzazione negativa viene utilizzata per accedere agli elementi degli elenchi. Tuttavia, l’indicizzazione negativa ci consente di accedere all’indice dalla fine dell’elenco. L’inizio dell’indicizzazione negativa è -1. E continua ad aumentare come -2, -3, -4, ecc., fino alla lunghezza della lista.

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

# 13. Spiega alcuni metodi di dict

1. elementi – il metodo restituisce chiave: valore coppie di dizionari come elenco di tuple.

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

2. pop – il metodo viene utilizzato per rimuovere la coppia chiave: valore dal dizionario. Accetta la chiave come argomento e la rimuove dal dizionario.

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

Nota: alcuni altri metodi di dict sono: get, keys, values, clear, ecc.

# 14. Che cos’è lo slicing in Python?

Lo Slicing viene utilizzato per accedere al sottoarray da un tipo di dati di sequenza. Restituisce i dati dal tipo di dati della sequenza in base agli argomenti forniti. Restituisce lo stesso tipo di dati del tipo di dati di origine.

Slicing accetta tre argomenti. Sono l’indice iniziale, l’indice finale e il passaggio di incremento. La sintassi dello slicing è variabile[start:end:step]. Gli argomenti non sono obbligatori per affettare. È possibile specificare due punti vuoti (:) che restituiscano tutti i dati come risultato.

>>> 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. Quali tipi di dati consentono lo slicing?

Possiamo usare lo slicing sui tipi di dati list, tuple e str.

#16. Cosa sono gli operatori di decompressione in Python? Come usarli?

Gli operatori * e ** sono operatori di decompressione in Python.

L’operatore * unpacking viene utilizzato per assegnare più valori a valori diversi alla volta dai tipi di dati della sequenza.

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

L’operatore ** unpacking viene utilizzato con i tipi di dati dict. La decompressione nei dizionari non funziona come la decompressione con i tipi di dati di sequenza.

La decompressione nei dizionari viene utilizzata principalmente per copiare elementi chiave: valore da un dizionario all’altro.

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

Nota: puoi fare riferimento a questo articolo per maggiori informazioni su questi operatori.

Condizioni e loop

#17. Python ha istruzioni switch?

No, Python non ha istruzioni switch.

#18. Come si implementa la funzionalità delle istruzioni switch in Python?

Possiamo implementare la funzionalità delle istruzioni switch usando le istruzioni if ​​ed elif.

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

# 19. Cosa sono le affermazioni break and continue?

break: l’istruzione break viene utilizzata per terminare il ciclo in esecuzione. L’esecuzione del codice salterà all’esterno del ciclo di interruzione.

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

continue: l’istruzione continue viene utilizzata per saltare l’esecuzione del codice rimanente. Il codice dopo l’istruzione continue non viene eseguito nell’iterazione corrente e l’esecuzione passa all’iterazione successiva.

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

# 20. Quando viene eseguito il codice in else con i cicli while e for?

Il codice all’interno del blocco else con i cicli while e for viene eseguito dopo aver eseguito tutte le iterazioni. E il codice all’interno del blocco else non viene eseguito quando interrompiamo i loop.

#21. Cosa sono le comprensioni di elenchi e dizionari?

Le comprensioni di elenchi e dizionari sono zucchero sintattico per i cicli 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. Come funziona la funzione di intervallo?

La funzione di intervallo restituisce la sequenza di numeri tra l’inizio e l’arresto con un incremento graduale. La sintassi della funzione range è range(start, stop[, step]).

L’argomento stop è obbligatorio. Gli argomenti start e step sono facoltativi. Il valore predefinito di inizio e passaggio è rispettivamente 0 e 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]
>>>

Funzioni

# 23. Quali sono i parametri e gli argomenti?

I parametri sono i nomi elencati nella definizione della funzione.

Gli argomenti sono i valori passati alla funzione durante il richiamo.

#24. Quali sono i diversi tipi di argomenti in Python?

Ci sono principalmente quattro tipi di argomenti. Sono argomenti posizionali, argomenti predefiniti, argomenti delle parole chiave e argomenti arbitrari.

Argomenti posizionali: gli argomenti normali che definiamo nelle funzioni definite dall’utente sono chiamati argomenti posizionali. Tutti gli argomenti posizionali sono obbligatori durante il richiamo della funzione.

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

Argomenti predefiniti: possiamo fornire il valore agli argomenti nella definizione della funzione stessa come valore predefinito. Quando l’utente non ha passato il valore, la funzione considererà il valore predefinito.

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

Argomenti delle parole chiave: possiamo specificare il nome degli argomenti mentre si invoca la funzione e assegnare loro dei valori. Gli argomenti della parola chiave ci aiutano a evitare l’ordinamento che è obbligatorio negli argomenti posizionali.

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

Argomenti arbitrari: usiamo argomenti arbitrari per raccogliere un gruppo di valori in un momento in cui non sappiamo il numero di argomenti che otterrà quella funzione. Noi * e ** operatori nella definizione della funzione per raccogliere gli argomenti.

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

#25. Qual è la funzione lambda?

Le funzioni Lambda sono piccole funzioni anonime in Python. Ha espressioni singole e accetta argomenti multipli.

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

#26. Qual è la differenza tra la funzione normale e la funzione lambda?

La funzionalità sia delle funzioni normali che delle funzioni lambda sono simili. Ma abbiamo bisogno di scrivere del codice extra nelle normali funzioni rispetto alle funzioni lambda per la stessa funzionalità.

Le funzioni Lambda sono utili quando è presente una singola espressione.

#27. A cosa serve la parola chiave pass?

La parola chiave pass viene utilizzata per menzionare un blocco vuoto nel codice. Python non ci permette di lasciare i blocchi senza codice. Quindi, l’istruzione pass ci consente di definire blocchi vuoti (quando decidiamo di riempire il codice in un secondo momento).

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

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

#28. Cos’è una funzione ricorsiva?

La funzione che si chiama è chiamata funzione ricorsiva.

Cosa sono gli operatori di imballaggio in Python? Come usarli?

Gli operatori di compressione vengono utilizzati per raccogliere più argomenti nelle funzioni. Sono conosciuti come argomenti arbitrari.

Nota: puoi fare riferimento a questo articolo per maggiori informazioni sull’imballaggio degli operatori in Python.

#29. OOP in Python

Quale parola chiave viene utilizzata per creare classi in Python?

La parola chiave class viene utilizzata per creare classi in Python. Dovremmo seguire il caso pascal per nominare le classi in Python come pratica standard del settore.

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

#30. Come istanziare una classe in Python?

Possiamo creare un’istanza di una classe in Python semplicemente chiamandola come funzione. Possiamo passare gli attributi richiesti per l’oggetto nello stesso modo in cui facciamo per gli argomenti di funzione.

>>> 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. Cos’è il sé in Python?

Il sé rappresenta l’oggetto della classe. Viene utilizzato per accedere agli attributi e ai metodi dell’oggetto all’interno della classe per l’oggetto particolare.

#32. Qual è il metodo __init__?

__init__ è il metodo di costruzione simile ai costruttori in altri linguaggi OOP. Viene eseguito immediatamente quando creiamo un oggetto per la classe. Viene utilizzato per inizializzare i dati iniziali per l’istanza.

#33. Cos’è docstring in Python?

Le stringhe di documentazione o docstring vengono utilizzate per documentare un blocco di codice. Sono anche usati come commenti su più righe.

Queste docstring sono usate nei metodi di una classe per descrivere cosa fa un certo metodo. E possiamo vedere il metodo docstring usando il metodo di aiuto.

>>> 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. Quali sono i metodi dunder o magici?

I metodi che hanno due caratteri di sottolineatura di prefisso e suffisso sono chiamati dunder o metodi magici. Sono utilizzati principalmente per ignorare i metodi. Alcuni dei metodi che possiamo sovrascrivere nelle classi sono __str__, __len__, __setitem__, __getitem__, ecc.,

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

Nota: ci sono molti altri metodi che puoi ignorare. Sono utili quando si desidera personalizzare il codice in modo approfondito. Esplora la documentazione per maggiori informazioni.

#35. Come si implementa l’ereditarietà in Python?

Possiamo passare la classe genitore alla classe figlia come argomento. E possiamo invocare la classe genitore del metodo init nella classe figlia.

>>> 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. Come accedere alla classe genitore all’interno della classe figlia in Python?

Possiamo usare super() che si riferisce alla classe genitore all’interno della classe figlia. E possiamo accedere ad attributi e metodi con esso.

Varie

#37. Come utilizzare i commenti a riga singola e multi riga in Python?

Usiamo hash (#) per i commenti a riga singola. E virgolette singole triple (“‘commento”‘) o virgolette doppie triple (“””commento””) per commenti su più righe.

#38. Che cos’è un oggetto in Python?

Tutto in Python è un oggetto. Tutti i tipi di dati, le funzioni e le classi sono oggetti.

#39. Qual è la differenza tra is e ==?

L’operatore == viene utilizzato per verificare se due oggetti hanno lo stesso valore o meno. L’operatore is viene utilizzato per verificare se due oggetti si riferiscono o meno alla stessa posizione di memoria.

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

#40. Cos’è la copia superficiale e profonda?

Shallow Copy: crea la copia esatta come l’originale senza modificare i riferimenti degli oggetti. Ora, sia gli oggetti copiati che quelli originali fanno riferimento agli stessi riferimenti a oggetti. Quindi, la modifica di un oggetto influenzerà l’altro.

Il metodo di copia dal modulo di copia viene utilizzato per la copia superficiale.

>>> 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: copia ricorsivamente i valori dell’oggetto originale nel nuovo oggetto. Dobbiamo usare la funzione di slicing o deepcopy dal modulo di copia per la copia profonda.

>>> 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. Cosa sono gli iteratori?

Gli iteratori sono oggetti in Python che ricordano il loro stato di iterazione. Inizializza i dati con il metodo __iter__ e restituisce l’elemento successivo utilizzando il metodo __next__.

Dobbiamo chiamare next(iterator) per ottenere l’elemento successivo dall’iteratore. E possiamo convertire un tipo di dati di sequenza in un iteratore usando il metodo integrato 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. Cosa sono i generatori?

I generatori sono le funzioni che restituiscono un iteratore come un oggetto generatore. Utilizza il rendimento per generare i dati.

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

Conclusione 👨‍💻

Le domande non sono limitate, come vediamo in questo articolo. Questo articolo mostra come diversi tipi di domande possono essere poste da vari argomenti in Python. Ma non è limitato all’insieme di domande che abbiamo discusso in questo articolo.

Un modo per essere preparati durante l’apprendimento è interrogarsi su diversi argomenti. Prova a fare diversi tipi di domande da un concetto. E rispondi tu stesso. In questo modo, probabilmente non ti sorprenderai delle domande nell’intervista. Puoi anche controllare il compilatore Python online per esercitarti con il codice.

Tutto il meglio per la tua imminente intervista con Python! 👍