Esercizi di Programmazione Python

Il miglior modo per imparare a programmare con Python velocemente è fare tanta pratica.

In questa pagina troverai esercizi svolti di programmazione Python su funzioni, stringhe, liste, calcoli matematici, algoritmi ricorsivi e moduli. Gli esercizi sono suddivisi per livello: principiante ed intermedio. Volendo puoi anche cliccare sul tasto "Soluzione" per vedere una delle possibile soluzioni.

Attenzione! Questi esercizi sono pensati e realizzati con il solo obbiettivo di permetterti di concentrarti sulle basi del linguaggio: queste sono infatti fondamentali per poter poi imparare qualsiasi strumento avanzato, e ti aiuteranno a prendere gran confidenza con i tipi di dato di Python.

Buon allenamento, ed Happy Coding!

Vuoi imparare Python come un/a professionista? Dai uno sguardo ai nostri

Livello: Principiante

Esercizio 001
Max tra Due Numeri

Scrivi un programma che chieda due numeri all'utente tramite la funzione input e mostri il più grande tra i due utilizzando la funzione print.
Per quanto Python disponga di una funzione max(), siete invitati ad utilizzare le istruzioni istruzioni if, elif ed else per la scrittura dell'algoritmo.

Esercizio 002
Max tra Tre Numeri

Scrivi un programma che chieda tre numeri a, b, c all'utente e mostri il più grande tra loro.

Esercizio 003
Il Maggiore tra Tutti!

Scrivi un programma che, data una lista di numeri, fornisca in output il maggiore tra tutti gli elementi della lista.

Esercizio 004
Sei una Vocale?

Scrivi un programma che chieda all'utente una stringa composta da un solo carattere e dica se si tratta di una vocale oppure no.

Esercizio 005
Somma Inarrestabile

Scrivi un semplice programma che, data una lista di numeri, sommi tra loro tutti gli elementi.

Suggerimento: anche se esiste la funzione sum() per risolvere l'esercizio potresti usare il ciclo for.

Esercizio 006
Moltiplicatore Inarrestabile

Scrivi un programma "moltiplicatore" che, data una lista di numeri, moltiplichi tra loro tutti gli elementi.

Esercizio 007
Solamente per Soci

Scrivi un programma che a partire da un elemento e una lista di elementi dica in output se l'elemento passato sia presente o meno nella lista.

Qualora l'elemento sia presente nella lista, il programma dovrà comunicarci l'indice dell'elemento tramite il metodo index.

Esercizio 008
Generatore di Istogrammi

Scrivi una semplice funzione che, data una lista di numeri, fornisca in output un istogramma basato su questi numeri, usando asterischi per disegnarlo.

Data ad esempio la lista [3, 7, 9, 5], la funzione dovrà produrre questa sequenza:

***

*******

*********

*****

Esercizio 009
Scriviamo la nostra versione di len()

Scrivi una funzione che restituisca la lunghezza di una stringa o lista passata come parametro. In sostanza, seppur presente, provate a scrivere la nostra versione della funzione len!

Esercizio 010
A Ciascuno il Suo

Scrivi una funzione che data in ingresso una lista A contenente n parole, restituisca in output una lista B di interi che rappresentano la lunghezza delle parole contenute in A.

Questo esercizio può essere risolto anche usando una list comprehension.

Esercizio 011
Il Frequenzimetro

Scrivi una funzione che, data una stringa come parametro, restituisca un dizionario rappresentante la "frequenza di comparsa" di ciascun carattere componente la stringa.

Per fare un esempio, data una stringa "ababcc", otterremo in risultato {"a": 2, "b": 2, "c": 2}

Esercizio 012
L'Americana

Scrivi una funzione che, dato in ingresso un valore espresso in metri, mandi in print l'equivalente in miglia terrestri, iarde, piedi e pollici. Come risolverai questo esercizio?

Esercizio 013
Il Signore del Tempo

Scrivi una semplice funzione che converta un dato numero di giorni, ore e minuti, passati dall'utente tramite funzione input, in secondi.

Esercizio 014
Il Geometra

Scrivi una funzione che, a scelta dell'utente, calcoli l'area di:

  • un cerchio
  • un quadrato
  • un rettangolo
  • un triangolo

Sentitevi liberi di estendere le potenzialità della funzione quanto meglio credete!

Esercizio 015
Funzione Genera MAC

Un indirizzo MAC (Media Access Control address) è un indirizzo univoco associato dal produttore, a un chipset per comunicazioni wireless (es WiFi o Bluetooth), composto da 6 coppie di cifre esadecimali separate da due punti.

Un esempio di MAC è 02:FF:A5:F2:55:12.

Scrivi una funzione genera_mac() che generi degli indirizzi MAC pseudo casuali utilizzando il modulo random.

Esercizio 016
Info di Sistema

Scrivi una funzione che fornisca in output il nome del Sistema Operativo utilizzato con eventuali relative informazioni sulla release corrente.

Suggerimento: per risolvere questo esercizio potreste dover utilizzare una libreria! ;)

Esercizio 017
Trova ASCII

Scrivi una funzione che, dato un carattere in ingresso, restituisca in output il codice ASCII associato al carattere passato.

Anche in questo caso, usare una libreria potrebbe facilitare la risoluzione dell'esercizio!

Esercizio 018
Il Numero Perfetto

Un numero perfetto è un numero naturale uguale alla somma dei suoi divisori positivi, escluso sé stesso. Scrivi una funzione che verifichi se un numero è perfetto oppure no.

Esercizio 019
Lista di Colori

Scrivi una funzione che aggiunga ad una lista 10 colori inseriti dall'utente. Il programma deve poi chiedere all'utente di inserire una lettera e mostrare in output solo i colori nella lista che iniziano con quella lettera.

Suggerimento: potresti usare la funzione range e il metodo startswith().

Esercizio 020
Print senza andare a capo

Scrivi una funzione che prenda una serie di input dall'utente utilizzando un ciclo while e li stampi con la funzione print senza andare a capo. Il ciclo while si deve interrompere quando l'utente preme INVIO senza scrivere nulla.

Esercizio 021
La Segreteria

Scrivi una funzione che accetti una lista di dizionari rappresentante una scuola. Ogni dizionario rappresenta uno studente e contiene nome, cognome, classe e voti. La funzione deve stampare un elenco di tutti gli studenti e calcolare la media dei voti di ciascuno.

Esercizio 022
Gestione Login

Scrivi un programma che crei un file CSV per memorizzare in un dizionario i dati degli utenti registrati su un sito web. I dati richiesti per ogni utente sono: username, password, email e data di registrazione. Il programma deve permettere di salvare le informazioni nel file, leggere i dati e stamparli a schermo.

Esercizio 023
Testi di canzoni

Scrivi una funzione che permetta di inserire una canzone e salvarla in un file di testo. Il programma deve chiedere all'utente di inserire il titolo e il testo della canzone, e poi salvare quest'ultimo in un file intitolato titolo_canzone.txt.

Suggerimento: dovrai utilizzare l'istruzione with.

Esercizio 024
Il Sistema Solare

Scrivi una funzione che crei una tupla contenente i nomi dei pianeti del sistema solare, la loro tipologia (gassoso o roccioso) e il numero di satelliti naturali conosciuti. Il programma deve quindi stampare a schermo il contenuto della tupla e il numero totale di satelliti.

Esercizio 025
Sport di squadra e individuali

Scrivi una funzione che prenda come argomento un set di sport preferiti dall'utente e stampi un messaggio di testo che indica se si tratta di uno sport di squadra o individuale.

Suggerimento: per valutare la stringa inserita potrebbe essere utile utilizzare il metodo lower.

Livello: Intermedio

Esercizio 001
Il Linguaggio dei Furfanti

In Svezia, i bambini giocano spesso utilizzando un linguaggio un po' particolare detto rövarspråket, che significa "linguaggio dei furfanti": consiste nel raddoppiare ogni consonante di una parola e inserire una "o" nel mezzo. Ad esempio la parola "mangiare" diventa "momanongogiarore".

Scrivi una funzione in grado di tradurre una parola o frase passata tramite input in rövarspråket. Dopo aver tradotto una frase, il programma dovrà chiedere all'utente se intende tradurne un'altra, e in caso di risposta positiva, dovrà attendere l'inserimento di una nuova parola da parte dell'utente.

Esercizio 002
Reverser

Scrivi una funzione a cui passerai come parametro una stringa, e che manderà in print una versione inversa (al contrario) della stessa stringa. Ad esempio "abcd" diventerà "dcba".

Suggerimento: per risolvere questo esercizio in modo compatto potresti usare lo slicing.

Esercizio 003
Palindromo... o non Palindromo?

Scrivi una funzione a cui viene passata una parola e riconosce se si tratta di un palindromo (parole che si leggono uguali anche al contrario) oppure no.

Esercizio 004
Generatore di Password

Scrivi una funzione generatrice di password.

La funzione deve generare una stringa alfanumerica di 8 caratteri qualora l'utente voglia una password semplice, e di 20 caratteri ASCII qualora desideri una password più complicata.

Esercizio 005
Poesia Elettronica

Scrivi una semplice funzione rimario, a cui viene passato un elenco di parole come parametro e che riceva una parola inserita dall'utente tramite la funzione input.

La funzione rimario dovrà confrontare la parola inserita dall'utente con quelle presenti nell'elenco passato, alla ricerca di rime, intese come parole le cui ultime 3 lettere siano uguali alla parola inserita dall'utente.

Le rime dovranno essere quindi mostrate in output utilizzando il metodo join.

Esercizio 006
La Libreria

Scrivi una funzione vendi_libri(), che aiuti nella gestione della vendita di libri in una libreria:

  • Controlla se il libro richiesto è presente sugli scaffali della libreria
  • Qualora il libro sia presente, ne decrementa il numero di copie (eventualmente rimuovendo il titolo) e ci segnala che la vendita ha avuto successo
  • Se il libro non è disponibile, viene messo in un elenco di libri da ordinare e ci viene comunicato che la vendita non ha avuto successo

La funzione deve restituire valore booleanoTrue o False in base all'esito della vendita.

Esercizio 007
Crittografia ROT-13

Il ROT-13 è un semplice cifrario monoalfabetico, in cui ogni lettera del messaggio da cifrare viene sostituita con quella posta 13 posizioni più avanti nell'alfabeto.

Scrivi una semplice funzione in grado di criptare una stringa passata, o decriptarla se la stringa è già stata precedentemente codificata.

Esercizio 008
Il Peso di una Cartella

Scrivi una funzione che calcoli la somma (espressa in MB) delle dimensioni dei file presenti nella cartella di lavoro utilizzando il modulo os.

Esercizio 009
Il Postino

Scrivi una funzione "postino" che sia in grado di spedire delle eMail tramite Gmail.

Suggerimento: puoi usare il modulo smtplib.

Esercizio 010
La Cercatrice

Scrivi una funzione "cercatrice" che scansioni un dato percorso di sistema alla ricerca di file di tipo pdf tramite il modulo os. La funzione dovrà avere le seguenti caratteristiche:

  • Il percorso fornito dovrà essere anzitutto validato, in quanto deve portare a una cartella esistente
  • La funzione dovrà fornire un elenco dei file pdf (con/relativo/percorso) man mano che questi vengono trovati
  • In fine la funzione dovrà fornire in output il totale dei file .pdf che sono stati trovati durante la scansione.
Esercizio 011
Il Salvatore

Scrivi una funzione "file_backup" che sia in grado di effettuare copie di backup di determinati tipi di file, con le seguenti caratteristiche:

  • Percorso da scansionare, di backup e tipologia di file da copiare dovranno essere passati dall'utente tramite input
  • Il programma dovrà verificare la presenza o meno di una cartella di backup al percorso fornito, e qualora questa non fosse presente dovrà crearla
  • La funzione dovrà anche gestire l'eventuale scelta da parte dell'utente, di un percorso da scansionare che non esiste

Suggerimento: potresti importare i moduli os e shutil.

Esercizio 012
Funzione Fattoriale Ricorsiva

Scrivi una funzione ricorsiva che calcola il fattoriale di un numero dato.

Esercizio 013
La Successione di Fibonacci

Nella Successione di Fibonacci, ciascun numero è la somma dei due numeri che lo precedono, ad esempio:

1, 1, 2, 3, 5, 8, 13 (...)

Scrivi una funzione ricorsiva che restituisce in output i numeri della successione di Fibonacci, entro una soglia specifica impostata dall'utente.

Esercizio 014
Il Cifrario di Cesare

Il Cifrario di Cesare è un algoritmo di crittografia che consiste nello spostare ciascuna lettera di una certa quantità di posti nell'alfabeto. Per utilizzarlo, si sceglie una chiave che rappresenta il numero di posti di cui ogni lettera dell'alfabeto verrà spostata: ad esempio, se si sceglie una chiave di 3, la lettera A diventerà D, la lettera B diventerà E e così via. Per decifrare un messaggio cifrato con il cifrario di Cesare bisogna conoscere la chiave utilizzata e spostare ogni lettera indietro di un numero di posti corrispondente alla chiave.

Scrivi una funzione che riceva come argomento una stringa e un numero e applichi il Cifrario di Cesare alla stringa spostandosi nell'alfabeto di tante posizioni quante dice il numero.

Inizia subito uno dei nostri corsi e apprendi le competenze più richieste del settore

Le lezioni sono tutte on demand, nessuna diretta. Sei tu a scegliere quando seguirle, perché sappiamo cosa significa essere impegnati.

hero

Terminale Python Integrato - Clicca per aprire o espandere


Attenzione: il Terminale Python è disponibile solo per utenti loggati

Creando un account potrai usare il Terminale in questa sezione e avere accesso alla tua Libreria di Corsi Academy.

In alternativa puoi svolgere gli esercizi dal tuo computer.


Smartphone non attualmente supportati :(

Per usare il Terminale Integrato, accedi a questa pagina tramite computer ;)