
Imparare a Programmare in Python – Esercitazioni: Soluzione delle esercitazioni assegnate nella lezione precedente.
Imparare a Programmare in Python – 7 – Esercitazioni
Al termine della lezione precedente ho assegnato 3 esercitazioni:
- Creare una semplice calcolatrice
- Creare un programma che crea una tabellina
- Creare un programma che calcola area e perimetro di un rettangolo
In questo articolo andremo a risolvere le 3 esercitazioni, comprese le richieste extra di ciascuna di esse.
Crea una calcolatrice semplice
# CALCOLATRICE
def somma(x,y):
somma = x + y
return somma
def sottrai(x,y):
sottrai = x - y
return sottrai
def moltiplica(x,y):
moltiplica = x * y
return moltiplica
def dividi(x,y):
dividi = x / y
resto = x % y
return dividi, resto
numero1 = int(input("Inserisci il primo numero: "))
numero2 = int(input("Inserisci il secondo numero: "))
scelta = input("Scegli l'operazione tra 'somma', 'sottrai', 'moltiplica' e 'dividi': ")
risultato = 0
resto = 0
if scelta == "somma":
risultato = somma(numero1, numero2)
elif scelta == "sottrai":
risultato = sottrai(numero1, numero2)
elif scelta == "moltiplica":
risultato = moltiplica(numero1, numero2)
elif scelta == "dividi":
risultato, resto = dividi(numero1, numero2)
else:
print("Input non riconosciuto, riprovare!")
print(f"Hai scelto {scelta},il risultato è: ", risultato)
if scelta == "dividi":
if resto != 0:
print(f"il resto è {resto}")
Questo programma permette di chiedere 3 input all’utente:
- il primo numero
- il secondo numero
- il tipo di operazione da eseguire
Attualmente questo programma presenta un grande limite, ma per risolverlo sono richieste conoscenze che ancora non abbiamo dalle lezioni precedenti quindi possiamo ignorare questo limite.
Il limite è che l’operazione scelta DEVE essere scritta esattamente come la vediamo, quindi completamente in minuscolo, scrivendola in maiuscolo avremmo sempre il risultato dell’else.
Con le conoscenze attuali, l’unico modo per evitare questo problema è usare l’OR ad ogni scelta e scrivere la parola nei diversi formati, ad esempio:
- if (scelta == “somma”) OR (scelta == “SOMMA”) OR (scelta == “Somma”):
In questo esempio se somma venisse scritto in uno dei 3 modi elencati sarebbe sempre valida
Crea una Tabellina
#TABELLINA
def tabellina(numero):
for conta_numero in range(1,11):
risultato = numero * conta_numero
print(f"{numero} x {conta_numero} = {risultato}")
valore_scelto = 0
while valore_scelto != "esci":
valore_scelto = int(input("Inserisci un numero o scrivi 'esci' per chiudere il programma: "))
tabellina(valore_scelto)
print("Grazie per aver utilizzato il programma!")
Qui vediamo un software che ci permette di creare una tabellina da 1 a 10 di qualsiasi numero.
Anche in questo esempio abbiamo un problema non risolvibile con le conoscenze viste fino ad ora, cioè l’input richiede che venga inserito un numero, ma il while chiude il programma scrivendo esci.
Quindi scrivendo esci ci sarà un problema di compatibilità perchè il programma si aspetta di trovare un numero ma trova una stringa ed avremo un errore.
Attualmente l’unico modo per risolvere questo problema è creare un ciclo while basato su un altro input, ad esempio l’utente potrebbe dover scrivere “continua” o “esci”, e poi con il secondo input chiedere il numero.
Area e Perimetro di un Rettangolo
#AREA E PERIMETRO DI UN RETTANGOLO
def area_rettangolo(base,altezza):
risultato = base * altezza
return risultato
def perimetro_rettangolo(base,altezza):
risultato = (base + altezza) * 2
return risultato
def verifica_forma(base,altezza):
if base == altezza:
return True
else:
return False
base = int(input("Inserisci il valore della base del rettangolo: "))
altezza = int(input("Inserisci il valore dell'altezza del rettangolo: "))
risultato_area = area_rettangolo(base,altezza)
risultato_perimetro = perimetro_rettangolo(base,altezza)
print(f"L'area del rettangolo è: {risultato_area}")
print(f"Il perimetro del rettangolo è: {risultato_perimetro}")
if verifica_forma(base,altezza) == True:
print("La forma è un quadrato.")
else:
print("La forma è un rettangolo.")
In questa esercitazione creiamo un programma che calcola area e perimetro di un rettangolo, e verifica se è un rettangolo o un quadrato.