Esercizi di Programmazione Python e JavaScript

Il modo migliore per imparare a programmare è inziando a fare subito pratica

In questa pagina troverai esercizi svolti di programmazione Python su funzioni, stringhe, liste, calcoli matematici, algoritmi ricorsivi e moduli.

Cliccando sul bottone "Mostra Soluzione" potrai confrontare il tuo svolgimento con il mio. Infatti, nel mondo della programmazione esistono sempre più strade per raggiungere lo stesso risultato. Magari la tua soluzione potrà risultare anche migliore e più efficiente della mia

Devi ancora imparare le basi dei lignuaggi di programmazione? Dai uno sguardo alla sezione guide per trovare dei suggerimenti utili per capire da dove iniziare.

Prima di partire, ci tengo a fare una piccola precisazione: chiaramente, ognuna delle soluzioni proposte per questi esercizi è perfettibile sotto ogni punto di vista. Si prossono prevedere controlli ed eccezioni per evitare che l'utente inserisca tipi di dato differenti da quelli che ci aspettiamo, oppure che il programma non preveda tutte le possibili alternative.

Le soluzioni qui proposte, tuttavia, sono state pensate per essere più dirette e lineari possibili, senza arricchirsi di troppe righe di codice che, per quanto utile, allontanerebbero l'esercizio dal suo scopo principale, ovvero non quello di creare programmi perfetti a prova di bug, bensì per far apprendere i principi ed i costrutti fondamentali dei linguiaggi di programmazione.

Nulla vieta, ovviamente, che sia tu a perfezionare ognuno di questi semplici script rendendoli assolutamente perfetti, ovvero non soltanto efficaci ma anche efficienti sotto tutti i punti di vista.

Buon allenamento e, soprattutto, bon divertimento!


Esercizio #01 - Pari o Dispari

Scrivere un programma che riceve in imput un numero intero fornito dall'utente. Il programma dovrà quindi visualizzare un messaggio che indichi se il numero inserito sia pari oppure dispari.

number = int(input("Inserire qui il numero da verificare --> "))

if number % 2 == 0:
    print("Il numero inserito è PARI")
else:
    print("Il numero inserito è DISPARI")
                        	    
let number = prompt("Inserire qui il numero da verificare");
number = parseInt(number);
if (number % 2 == 0) {
    console.log("Il numero inserito è PARI");
} else {
    console.log("Il numero inserito è DISPARI");
}
                        	    

Esercizio #02 - Anni da cane

Comunemente si ritiene che ogni anno per il cane equivalga a 7 anni per una persona. Tuttavia, tale teoria porta ad un conteggio poco credibile ed approssimativo, in quanto non tiene conto del fatto che un cane raggiunge l'età adulta in circa due anni (umani) i quali, con tale teoria, andrebbero ad equivalere soltanto a 14 anni per il cane... non proprio un adulto diciamo.

Per questo motivo, si ritiene più corretto adottare un diverso criterio di equivalenza, tale per cui i primi due anni "umani" vengono considerati pari a 10,5 anni "canini" ciascuno, mentre ognuno degli anni successivi viene considerato equivalente a 4 anni per il cane.

Sulla scorta di tale premessa, scrivi un programma che consenta di operare la conversione tra gli anni di una persona e quelli di un cane. Il tuo programma, dovrà inoltre prevedere un controllo nel caso in cui l'utente inserisca un numero negativo.

age = int(input("Inserire qui il numero degli anni --> "))

if age < 0:
    print("Attenzione! Hai inserito un'età non valida!")
else:
    if age <= 2:
        dogAge = 10.5 * age
        print(f"Gli anni che hai inserito pari a {age} corrispondono a {dogAge} anni da cane!")
    else:
        dogAge = (age - 2) * 4 + 21.0
        print(f"Gli anni che hai inserito pari a {age} corrispondono a {dogAge} anni da cane!")
                        	    
let age = prompt("Inserire qui il numero degli anni");
age = parseInt(age);
if (age < 0) {
    console.log("Attenzione! Hai inserito un'età non valida!");
} else {
    if (age <=2) {
        dogAge = 10.5 * age;
        console.log(`Gli anni che hai inserito pari a ${age} corrispondono a ${dogAge} anni da cane!`);
    } else {
        dogAge = (age - 2) * 4 + 21.0;
        console.log(`Gli anni che hai inserito pari a ${age} corrispondono a ${dogAge} anni da cane!`);
    }
}
                        	    

Esercizio #03 - Vocale o Consonante

Scrivi un programma che risconosca la lettera passata dall'utente e determini se si tratta di una vocale oppure di una consonante, fornendo quindi la relativa risposta. Prevedi un comportamento particolare nel caso in cui l'utente inserisca una Y: in questo caso il tuo programma dovrebbe fornire una risposta specifica.

Ricorda che sia Python che JS sono "case sensitive", ovvero una "A" viene ritenuta diversa da una "a". Prevedi anche una soluzione a caratteristica affinchè qualora l'utente inserisca la lettera in minuscolo il programma non la riconosca.

array = ["A","E","I","O","U"]
letter = input("Inserisci qui la lettera da verificare --> ")
letter = letter.upper()
print("Hai inserito la lettera " + letter)

if letter in array:
    print("La lettera inserita è una VOCALE")
elif letter == "Y":
    print("La lettera inserita è una YPSILON")
else:
    print("La lettera inserita è una CONSONANTE")
                        	    
let array = ["A","E","I","O","U"];
let letter = prompt("Inserisci qui la lettera da verificare");
letter = letter.toUpperCase();
console.log("Hai inserito la lettera " + letter);

if (array.includes(letter)) {
    console.log("La lettera inserita è una VOCALE");
} else if (letter =="Y") {
    console.log("La lettera inserita è una YPSILON");
} else {
    console.log("La lettera inserita è una CONSONANTE");
}
                        	    

Esercizio #04 - Classificazione triangoli

Come sappiamo, un triangolo può essere classificato in base a quanti sono i lati della stessa lunghezza di cui dispone. Un triangolo equilatero è infatti costituito da tre lati tutti uguali. Un trangolo isoscele presenta invece due lati uguali tra loro ed uno di diversa lunghzza. Un triangolo scaleno è infine costituito da tre lati di lughezze tutte differenti.

Scrivi un programma che riceve le lunghezze dei tre lati di un triangolo da parte dell'utente e restituisce la tipologia del triangolo medesimo in base ai valori inseriti.

sideA = input("Inserisci la lunghezza del primo lato --> ")
sideB = input("Inserisci la lunghezza del secondo lato --> ")
sideC = input("Inserisci la lunghezza del terzo lato --> ")

if sideA == sideB and sideA == sideC:
    print("Il triangolo è EQUILATERO")
elif (sideA == sideB and sideA != sideC) or (sideA == sideC and sideA != sideB) or (sideB == sideC and sideB != sideA):
    print("Il triangolo è ISOSCELE")
else:
    print("Il triangolo è SCALENO")
                        	    
let sideA = prompt("Inserisci la lunghezza del primo lato")
let sideB = prompt("Inserisci la lunghezza del secondo lato")
let sideC = prompt("Inserisci la lunghezza del terzo lato")

if (sideA == sideB && sideA == sideC) {
    console.log("Il triangolo è EQUILATERO");
} else if ((sideA == sideB && sideA != sideC) || (sideA == sideC && sideA != sideB) || (sideB == sideC && sideB != sideA)) {
    console.log("Il triangolo è ISOSCELE");
} else {
    console.log("Il triangolo è SCALENO");
}
                        	    

Esercizio #05 - Facce sulle banconote

Come risaputo, le banconote della valuta americana (USD) sono contraddistinte ognuna dal ritratto di un particolare ex Presidente degli Stati Uniti.

Nello specifico abbiamo: George Washington sulla banconota da $1, Thomas Jefferson su quella da $2, Abraham Lincoln su quella da 5$, Alexander Hamilton su quella da $10, Andrew Jackson su quella da $20, Ulysses S. Grant su quella da $50 e, infine, Benjamin Franklin su quella da $100.

Scrivi un programma che, preso in input il taglio della valuta da parte dell'utente, restituisca il corrispondente nominativo del presidente stampato sulla medesima.

presidents = ["George Washington", "Thomas Jefferson", "Abraham Lincoln", "Alexander Hamilton", "Andrew Jackson", "Ulysses S. Grant", "Benjamin Franklin"]

value = input("Inserirsci l'importo della banconota --> ")

if value == 1:
    print(f"Sulla banconota da ${value} è riportato il Presidente {presidents[0]}")
elif value == 2:
    print(f"Sulla banconota da ${value} è riportato il Presidente {presidents[1]}")
elif value == 5:
    print(f"Sulla banconota da ${value} è riportato il Presidente {presidents[2]}")
elif value == 10:
    print(f"Sulla banconota da ${value} è riportato il Presidente {presidents[3]}")
elif value == 20:
    print(f"Sulla banconota da ${value} è riportato il Presidente {presidents[4]}")
elif value == 50:
    print(f"Sulla banconota da ${value} è riportato il Presidente {presidents[5]}")
elif value == 100:
    print(f"Sulla banconota da ${value} è riportato il Presidente {presidents[6]}")
                        	    
let presidents = ["George Washington", "Thomas Jefferson", "Abraham Lincoln", "Alexander Hamilton", "Andrew Jackson", "Ulysses S. Grant", "Benjamin Franklin"];

let value = prompt("Inserirsci l'importo della banconota");

switch(value) {
    case "1":
        console.log(`Sulla banconota da $${value} è riportato il Presidente ${presidents[0]}`);
        break;
    case "2":
        console.log(`Sulla banconota da $${value} è riportato il Presidente ${presidents[1]}`);
        break;
    case "5":
        console.log(`Sulla banconota da $${value} è riportato il Presidente ${presidents[2]}`);
        break;
    case "10":
        console.log(`Sulla banconota da $${value} è riportato il Presidente ${presidents[3]}`);
        break;
    case "20":
        console.log(`Sulla banconota da $${value} è riportato il Presidente ${presidents[4]}`);
        break;
    case "50":
        console.log(`Sulla banconota da $${value} è riportato il Presidente ${presidents[5]}`);
        break;
    case "100":
        console.log(`Sulla banconota da $${value} è riportato il Presidente ${presidents[6]}`);
        break;
}