Chi ha ideato il linguaggio Python?
Risposta : Guido van Rossum
Guido van Rossum ha ideato Python, la cui prima versione pubblicata risale al 1991.
Ripassa Python: ecco una selezione di domande di ogni livello, con risposta e spiegazione. Per metterti alla prova senza vedere le risposte, gioca ai quiz.
Gioca ai quiz PythonRisposta : Guido van Rossum
Guido van Rossum ha ideato Python, la cui prima versione pubblicata risale al 1991.
Risposta : Dalla compagnia comica britannica Monty Python
Guido van Rossum ha scelto questo nome in riferimento alla compagnia comica britannica Monty Python.
Risposta : L'indentazione
In Python l'indentazione non è un dettaglio di presentazione: delimita i blocchi di if, for, funzioni e classi.
Risposta : float
Un numero scritto con un punto decimale è di tipo float; int indica gli interi senza parte decimale.
Risposta : elif
elif è la contrazione di else if: aggiunge una condizione dopo l'if, prima di un eventuale else.
Risposta : La lista
Una lista, scritta tra parentesi quadre, si modifica (aggiunta, eliminazione, sostituzione); una tupla, scritta tra parentesi tonde, non si modifica.
Risposta : {'nom': 'Ada'}
Un dizionario si scrive tra parentesi graffe, nella forma chiave: valore; {'nom', 'Ada'} senza due punti è un insieme (set).
Risposta : [0, 1, 2]
range(3) parte da 0 e si ferma prima di 3: produce 0, 1 e 2, cioè tre valori.
Risposta : [1, 4, 9]
Una comprensione di lista scorre la sequenza e calcola ogni elemento: qui n * n dà 1, poi 4 e poi 9.
Risposta : 2
Un parametro che ha un valore predefinito lo riceve quando il chiamante non gli fornisce un argomento.
Risposta : Un dizionario degli argomenti nominati
**kwargs raccoglie gli argomenti passati con un nome (parola=valore) in un dizionario.
Risposta : 'Bon'
Lo slicing [inizio:fine] prende gli indici a partire da inizio e si ferma prima di fine: qui gli indici 0, 1 e 2, cioè 'Bon'.
Risposta : self
Il primo parametro di un metodo d'istanza riceve l'oggetto corrente; la convenzione è chiamarlo self.
Risposta : Isolare i pacchetti installati per un progetto specifico
Un venv è una cartella che isola i pacchetti di un progetto, per evitare conflitti di versione tra progetti diversi.
Risposta : except
Il blocco except viene eseguito quando nel blocco try viene sollevata un'eccezione corrispondente; il resto del try viene allora interrotto.
Risposta : Il file viene chiuso automaticamente all'uscita dal blocco, anche in caso di errore
with usa un gestore di contesto: il file viene chiuso all'uscita dal blocco, anche se si verifica un errore.
Risposta : Un oggetto generatore, che produce i valori uno alla volta su richiesta
Una funzione con yield restituisce un generatore: il suo corpo viene eseguito solo quando si chiede il valore successivo.
Risposta : Solleva l'eccezione StopIteration
next() restituisce l'elemento successivo; se non ce ne sono più viene sollevata l'eccezione StopIteration, che segnala la fine dell'iterazione e che il ciclo for intercetta.
Risposta : Una funzione che riceve una funzione come argomento e restituisce una funzione modificata
Un decoratore si applica con @ sopra una funzione; esempio classico: un decoratore che misura la durata di una chiamata.
Risposta : Consente a un solo thread di eseguire bytecode Python alla volta
Il GIL è il lock dell'interprete CPython: un solo thread esegue bytecode Python alla volta, il che limita il parallelismo dei calcoli.
Risposta : Sospende la coroutine in attesa di un awaitable, senza bloccare l'event loop
await sospende la coroutine finché l'oggetto atteso non è pronto e, nel frattempo, l'event loop può eseguire altri task.
Risposta : Niente: l'annotazione non influisce sull'esecuzione
Le annotazioni servono a strumenti come mypy e alla leggibilità; l'interprete non le verifica né le converte durante l'esecuzione.
Risposta : __len__
len(obj) chiama il metodo __len__ definito nella classe dell'oggetto, che deve restituire un intero.
Risposta : copy.copy duplica solo il primo livello; deepcopy duplica anche le sotto-liste
copy.copy crea un nuovo oggetto esterno, ma i sotto-oggetti restano condivisi; deepcopy duplica anche gli oggetti annidati.