🎉 PROMO: Corso Python Mastery in sconto a soli 27.90 € (prezzo pieno 49.99 €). Offerta Limitata ⏰Scopri e Iscriviti!→

Esercizi di Programmazione Python

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. Cliccando il tasto "Risolvi nel terminale" potrai svolgere ciascun esercizio direttamente dall'editor Python integrato in questa pagina! 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. Il miglior modo per imparare a programmare con Python velocemente è fare tanta pratica.

Buon allenamento, ed Happy Coding!

E se potessi andare oltre?

Funzioni, Classi e OOP, decoratori, properties — tutto quello che serve per scrivere codice Python seriamente. Impara questo e molto altro nei nostri corsi completi!


Mostra:
1

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.

2

Max tra Tre Numeri

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

3

Il Maggiore tra Tutti!

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

4

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.

5

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.

6

Moltiplicatore Inarrestabile

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

7

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.

8

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:

***

*******

*********

*****

9

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!

10

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.

11

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}

12

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?

13

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.

14

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!

15

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.

16

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! ;)

17

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!

18

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.

19

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().

20

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.

21

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.

22

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.

23

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.

24

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.

25

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.

26

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.

27

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.

28

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.

29

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.

30

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.

31

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.

32

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.

33

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.

34

Il Postino

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

Suggerimento: puoi usare il modulo smtplib.

35

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

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.

37

Funzione Fattoriale Ricorsiva

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

38

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.

39

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.

Impara Python dalle basi a progetti reali con i nostri corsi pratici completi.

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

hero