Generato in italiano con l'IA a partire dal nostro quiz inglese; le fonti rimandano a Wikipedia in italiano.
Python è uno dei linguaggi di programmazione più diffusi al mondo: nato all'inizio degli anni novanta, deve il nome ai Monty Python e la sua sintassi pulita lo rende spesso il primo linguaggio studiato da chi inizia a programmare. Questo quiz attraversa le sue caratteristiche distintive, dall'indentazione che sostituisce le parentesi ai generatori, ai decoratori e alle implementazioni alternative, fino alla storia del suo creatore. Dalle basi che ogni principiante conosce ai dettagli che solo chi scrive Python da anni ricorda: mettiti alla prova.
Tutte le 29 domande con risposte e spiegazioni. Gioca al quiz
Q 01Chi ha ideato il linguaggio di programmazione Python?
Guido van Rossum
Il linguaggio nacque all'inizio degli anni novanta ed è spesso paragonato a Ruby, Tcl, Perl, Visual Basic o Scheme.
Q 02Con quale simbolo si introduce un commento in Python?
#
Tutto ciò che segue il simbolo sulla stessa riga viene ignorato; commentare righe di codice è un modo comune di fare debugging.
Q 03Che cosa usa Python per delimitare i blocchi di codice al posto delle parentesi?
L'indentazione
L'altra caratteristica immediatamente riconoscibile del linguaggio sono le variabili non tipizzate.
Q 04Da quale serie televisiva prende il nome il linguaggio Python?
Monty Python's Flying Circus
Il linguaggio viene spesso scelto dai neofiti perché la sua sintassi somiglia a uno pseudo-codice.
Q 05Quale modulo di Python serve a generare numeri casuali?
random
Tra gli altri moduli di base ci sono copy, per creare copie di oggetti, e time, per operare con unità di tempo e date.
Q 06Quale sistema libera e recupera automaticamente la memoria in Python?
Garbage collector
Una variabile è un contenitore a cui viene associata un'etichetta, il nome, che può passare a contenitori di tipo diverso nel corso del programma.
Q 07Quale simbolo introduce un decoratore in Python?
@
I decoratori aggiungono codice all'inizio o al termine di una funzione, di un metodo o di una classe senza modificarne l'interno e si possono concatenare.
Q 08Quale libreria permette di creare un gioco in Python?
Pygame
La flessibilità di sperimentazione del linguaggio permette al programmatore di organizzare le idee durante lo sviluppo.
Q 09Quale parola riservata permette di creare generatori in Python?
yield
A differenza di return, la funzione salva il proprio stato e riprende l'esecuzione quando viene richiesto il valore successivo.
Q 10Quale costrutto di Python ottiene sottosequenze indicando indici di inizio, di fine e step?
Slicing
Le sequenze, come liste, tuple e stringhe, condividono i metodi basati sull'ordinamento e sull'indicizzazione intera.
Q 11Quali sono le uniche due forme di ciclo previste da Python?
for e while
Mancano i cicli in stile C come il do...while e l'until del Pascal, ma tutti si possono esprimere con semplici equivalenti.
Q 12Con quale sigla è indicato il modo d'uso interattivo dell'interprete Python?
REPL
Questa modalità accomuna Python al Lisp e lo distingue dal Perl: il codice inserito da terminale viene valutato mostrando subito il risultato.
Q 13In che cosa viene pre-compilato il codice sorgente Python prima dell'esecuzione?
Bytecode
Il risultato di questa fase viene quasi sempre riutilizzato dopo la prima esecuzione, evitando di reinterpretare ogni volta il sorgente; è anche possibile distribuire programmi a sorgente chiuso.
Q 21Perché in Python i generatori sono preferiti alle liste?
Non occupano memoria
I valori vengono calcolati di volta in volta; le generator expression, simili alle list comprehension, sono un modo rapido per crearli.
Q 22Quale progetto attivo migliora le prestazioni di Python con un compilatore JIT?
PyPy
Il progetto è scritto in Python stesso e punta a semplificare lo sviluppo del linguaggio oltre che a ottimizzarne le prestazioni.
Q 23Come si chiama una funzione restituita il cui nome è definito in uno scope locale?
Closure
I blocchi lambda possono contenere solo espressioni, non statement, e non sono quindi il modo più generale per restituire una funzione.
Q 14Che cosa sono, in realtà, tutte le variabili in Python?
Puntatori a oggetto
Se a una variabile è assegnato un intero, subito dopo le si può assegnare una stringa o una lista: sono gli oggetti, non le variabili, ad avere un tipo.
Q 15Quali due istruzioni di controllo, comuni in altri linguaggi, non esistono in Python?
switch e goto
Per le scelte condizionate il linguaggio offre soltanto il costrutto if...elif...else.
Q 16Qual è l'implementazione di riferimento del linguaggio Python?
CPython
Scritta in C e Python, è l'implementazione più usata in assoluto.
Q 17Su quale piattaforma è basata Jython, una delle implementazioni di Python?
Java
Il linguaggio permette anche di scrivere estensioni in C o C++ da usare nelle parti in cui serve velocità pura.
Q 18Da quale linguaggio funzionale Python ha preso il costrutto della list comprehension?
Haskell
Il costrutto riempie una lista con una sintassi apposita, per esempio per calcolare le prime cinque potenze di due.
Q 19Con quale altro nome sono conosciuti i dizionari (dict) di Python?
Hash table
Ogni elemento di un dizionario è una coppia chiave-valore: le chiavi sono immutabili, mentre il valore si può modificare con un'assegnazione.
Q 20Per l'integrazione con quale ecosistema è pensata l'implementazione IronPython?
.NET
IronPython è scritta in C#, mentre l'implementazione di riferimento del linguaggio è scritta in C e Python.
Q 24Da quale versione di Python gli interi arbitrariamente grandi (long) sono il default?
3.0
Dalla stessa versione i tipi str e unicode sono unificati e compare il tipo byte, grosso modo equivalente a una stringa binaria.
Q 25Da quale versione di Python sono supportati gli insiemi (set e frozenset)?
2.7
Gli insiemi sono collezioni non ordinate di oggetti hashable e si affiancano a sequenze e dizionari tra i contenitori standard.
Q 26Da quale versione di Python è disponibile la libreria dei numeri decimali (decimal)?
2.4
Questi numeri in virgola mobile a precisione illimitata, simili a quelli di REXX e Cobol, evitano i problemi di arrotondamento dei float classici.
Q 27Per quale sistema operativo è stata realizzata l'implementazione PyS60?
Symbian OS
Se paragonato ai linguaggi compilati come il C, Python non brilla per velocità, specie nel calcolo matematico.
Q 28Quale estensione di Python, ormai abbandonata, era una sorta di compilatore JIT?
Psyco
L'estensione accelerava soprattutto l'implementazione di algoritmi, al prezzo di un maggiore consumo di memoria; lo sviluppo si è fermato nel 2012.
Q 29Da quale linguaggio poco noto Python deriva il suo sistema di indentazione?
Occam
Nei linguaggi derivati dall'ALGOL, come Pascal, C e Perl, i blocchi sono indicati con parentesi o parole chiave: il C usa {} e il Pascal begin e end.