da Cristina | Ott 2, 2019 | Python
In questa lezione proponiamo un’esercitazione sulle istruzioni condizionali in Python, al fine di consolidare quanto studiato.
Primo esercizio sulle istruzioni condizionali in Python
Dati in input il numeratore e il denominatore di una frazione, stabilire se tale frazione è propria, impropria o apparente.
Per la risoluzione di questo algoritmo ricordiamo le definizioni elencate di seguito.
Una frazione è propria quando il numeratore è minore del denominatore.
Invece, una frazione è impropria quando il numeratore è maggiore del denominatore ma non è un suo multiplo, in quanto altrimenti sarebbe apparente.
Infine, una frazione è apparente quando il numeratore è uguale al denominatore oppure è un multiplo del denominatore.
Ecco quindi una possibile soluzione che fa uso delle istruzioni condizionali in Python, dove consideriamo il numeratore e il denominatori numeri interi.
numeratore, denominatore=int(input(‘Inserisci il numeratore: ‘)), int(input(‘Inserisci il denominatore: ‘))
if numeratore==denominatore or numeratore%denominatore==0:
print(‘frazione apparente’)
else:
if numeratore>denominatore:
print(‘frazione impropria’)
else:
print(‘frazione propria’)
Provate adesso a trovare un’altra possibile soluzione all’algoritmo proposto.
Secondo esercizio sulle istruzioni condizionali in Python
Determinare, senza eseguire l’operazione, se il prodotto di due numeri naturali è uguale a zero.
Il prodotto di due numeri naturali è uguale a zero quando almeno uno dei numeri è uguale a zero.
Ecco allora che per la risoluzione ci torna comodo utilizzare l’operatore logico or.
a, b=int(input(‘Inserisci a: ‘)), int(input(‘Inserisci b: ‘))
if a==0 or b==0:
print(‘il prodotto è nullo’)
else:
print(‘il prodotto non è nullo’)
Potremmo anche non utilizzare l’or implementando questa soluzione che fa uso di elif (else if).
a, b=int(input(‘Inserisci a: ‘)), int(input(‘Inserisci b: ‘))
if a==0:
print(‘il prodotto è nullo’)
elif b==0:
print(‘il prodotto è nullo’)
else:
print(‘il prodotto non è nullo’)
Chiaramente queste sono solo alcuni degli algoritmi proposti sulle istruzioni condizionali in Python, nelle prossime lezioni ci eserciteremo ancora.
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Stringhe
5 – Casting
6 – Input e print
7 – Primi esercizi in Python
8 – Errori in Python
9 – Script Python
10 – Scambio di variabili
11 – Modulo math
12 – Operatori di confronto e booleani
13 – If else in
14 – If elif else
15 – If annidati
da Cristina | Ott 2, 2019 | Python
Proponiamo delle soluzioni per la risoluzione dell’algoritmo che trova il massimo fra tre numeri in Python, difatti come già detto nelle precedenti lezioni c’è quasi sempre più di una soluzione per risolvere un problema.
Dati in input tre numeri interi a, b e c, trovare il valore massimo.
Prima soluzione per trovare il massimo fra tre numeri in Python
Nella prima soluzione controlliamo dapprima:
a>b se è vero si passa alla condizione a>c (è infatti scontato che b non può essere il maggiore):
a>c se è vero stampa il valore a; altrimenti stampa il valore c.
a>b se è falso si passa alla condizione b>c (è infatti scontato che a non può essere il maggiore):
b>c se è vero stampa il valore b; altrimenti stampa il valore c.
Ecco dunque l’implementazione in Python:
a=int(input(‘Inserisci il primo numero: ‘))
b=int(input(‘Inserisci il secondo numero: ‘))
c=int(input(‘Inserisci il terzo numero: ‘))
if a>b:
if a>c:
print(‘Il valore maggiore è a: ‘, a)
else:
print(‘Il valore maggiore è c: ‘, c)
else:
if b>c:
print(‘Il valore maggiore è b: ‘, b)
else:
print(‘Il valore maggiore è c: ‘, c)
Seconda soluzione
Nella seconda soluzione utilizzeremo l’operatore logico and, in modo da creare una struttura più snella. Infatti se a> b e a>c sono entrambe vere allora a è il maggiore; altrimenti a sicuramente non è il maggiore e allora basta controllare se b è maggiore di c e in base a quest’ultima condizione si stabilisce il maggiore.
a=int(input(‘Inserisci il primo numero: ‘))
b=int(input(‘Inserisci il secondo numero: ‘))
c=int(input(‘Inserisci il terzo numero: ‘))
if a>b and a>c:
print(‘Il valore maggiore è a: ‘, a)
else:
if b>c:
print(‘Il valore maggiore è b: ‘, b)
else:
print(‘Il valore maggiore è c: ‘, c)
Terza soluzione con l’uso di elif:
Questa soluzione è simile alla seconda ma si utilizza l’istruzione elif che ricordiamo sta per else if.
a=int(input(‘Inserisci il primo numero: ‘))
b=int(input(‘Inserisci il secondo numero: ‘))
c=int(input(‘Inserisci il terzo numero: ‘))
if a>b and a>c:
print(‘Il valore maggiore è a: ‘, a)
elif b>c:
print(‘Il valore maggiore è b: ‘, b)
else:
print(‘Il valore maggiore è c: ‘, c)
Controllo dell’uguaglianza prima di trovare il maggiore
Infine presentiamo una soluzione dove controlliamo se i numeri sono tutti uguali e visualizziamo così un messaggio opportuno.
a=int(input(‘Inserisci il primo numero: ‘))
b=int(input(‘Inserisci il secondo numero: ‘))
c=int(input(‘Inserisci il terzo numero: ‘))
if a==b and b==c:
print(‘I numeri sono uguali’)
elif a>b and a>c:
print(‘Il valore maggiore è a: ‘, a)
elif b>c:
print(‘Il valore maggiore è b: ‘, b)
else:
print(‘Il valore maggiore è c: ‘, c)
Quarta soluzione
Infine ecco un’ultima soluzione che fa uso della variabile max.
a,b,c=int(input(‘Inserisci il primo numero:’)), int(input(‘Inserisci il secondo numero:’)), int(input(‘Inserisci il terzo numero: ‘))
max=a
if b>max:
max=b
if c>max:
max=c
print(‘Il valore maggiore è: ‘, max)
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Stringhe
5 – Casting
6 – Input e print
7 – Primi esercizi in Python
8 – Errori in Python
9 – Script Python
10 – Scambio di variabili
11 – Modulo math
12 – Operatori di confronto e booleani
13 – If else
14 – If elif else
15 – If annidati
da Cristina | Ott 2, 2019 | Python
In questa lezione vedremo semplicemente come realizzare l’algoritmo per il calcolo del massimo tra due numeri in Python, al fine di mettere in pratica quanto studiato finora.
Dati in input due numeri interi a e b, trovare il valore massimo. Se i numeri sono uguali visualizzare inoltre il messaggio: ‘i numeri sono uguali’.
Proponiamo in particolare un paio di soluzioni. Nella prima utilizziamo elif, mentre nella seconda utilizziamo gli if annidati.
Prima soluzione con l’uso di elif:
a = int(input('Inserisci il primo numero: '))
b = int(input('Inserisci il secondo numero: '))
if a > b:
print('Il valore maggiore è a: ', a)
elif a == b:
print('I numeri sono uguali ')
else:
print('Il valore maggiore è b: ', b)
Seconda soluzione con l’uso degli if annidati:
a=int(input(‘Inserisci il primo numero: ‘))
b=int(input(‘Inserisci il secondo numero: ‘))
if a>b:
print(‘Il valore maggiore è a: ‘, a)
else:
if a==b:
print(‘I numeri sono uguali ‘)
else:
print(‘Il valore maggiore è b: ‘, b)
Inoltre grazie all’assegnazione multipla, argomento che ho trattato nella lezione sullo scambio di valori, i valori in input a e b si possono prendere anche in questo modo:
a, b=int(input(‘Inserisci il primo numero: ‘)), int(input(‘Inserisci il secondo numero: ‘))
Questo è solo un esempio di una possibile risoluzione dell’algoritmo per il calcolo del massimo tra due numeri in Python, proponete pure la vostra nei commenti sotto.
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Stringhe
5 – Casting
6 – Input e print
7 – Primi esercizi
8 – Errori in Python
9 – Script Python
10 – Scambio di variabili in Python
11 – Modulo math
12 – Operatori di confronto e booleani
13 – If else
da Cristina | Ott 2, 2019 | Python
In questa lezione faremo degli esempi utilizzando gli if annidati in Python.
Definire degli annidamenti vuol dire, in poche parole, che si possono inserire degli if all’interno di altri if o all’interno dell’elif o ancora all’interno dell’else.
Indentazione – if annidati in Python
Quello a cui bisogna stare attenti quando in Python si utilizzano gli if annidati è l’indentazione.
Facciamo un esempio banale per illustrare come annidare gli if in Python.
Prendiamo in input un numero a, se è positivo visualizziamo il messaggio ‘a è positivo ‘, controlliamo anche se è maggiore di 100 e se è vero visualizziamo il messaggio ‘ed è anche maggiore di 100′. Altrimenti, se a non è positivo visualizziamo semplicemente il messaggio ‘a è negativo’.
a=int(input(‘Inserisci un numero intero positivo o negativo: ‘))
if a>=0:
print(‘a è maggiore di zero’)
if a>100:
print(‘ed è anche maggiore di 100’)
else:
print(‘a è negativo’)
Estendiamo il problema chiedendo di visualizzare anche il messaggio che ‘a non è maggiore di 100′. Per far ciò dobbiamo aggiungere un else al secondo if:
a=int(input(‘Inserisci un numero intero positivo o negativo: ‘))
if a>=0:
print(‘a è maggiore di zero’)
if a>100:
print(‘ed è anche maggiore di 100’)
else:
print(‘ma non è maggiore di 100’)
else:
print(‘a è negativo’)
Aggiungiamo altri messaggi, ad esempio se il numero è negativo ed è maggiore di -100.
a=int(input(‘Inserisci un numero intero positivo o negativo: ‘))
if a>=0:
print(‘a è maggiore di zero’)
if a>100:
print(‘ed è anche maggiore di 100’)
else:
print(‘ma non è maggiore di 100’)
else:
print(‘a è negativo’)
if a>-100:
print(‘ed è maggiore di -100’)
elif a==-100:
print(‘ed è uguale a -100’)
else:
print(‘ed è minore di -100’)
E così via. Quindi in Python è possibile utilizzare gli if annidati, avendo cura di mantenere una corretta indentazione.
Detto ciò però il consiglio rimane quello di utilizzare gli if annidati con moderazione.
Questi sono solo dei semplicissimi esempi d’uso di if annidati in Python, nella prossima lezione proporrò degli esercizi utili a comprendere meglio il concetto.
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Stringhe
5 – Casting
6 – Input e print
7 – Primi esercizi in Python
8 – Errori in Python
9 – Script Python
10 – Scambio di variabili
11 – Modulo math
12 – Operatori di confronto e booleani
da Cristina | Ott 2, 2019 | Python
Il costrutto if elif else in Python permette l’annidamento di più istruzioni if, cioè le istruzioni se allora altrimenti.
Infatti nel linguaggio Python per implementare la selezione multipla, si utilizza questo costrutto (per chi conosce altri linguaggi equivale allo switch-case).
Sintassi if elif else in Python
Innanzitutto notiamo che la parola elif è l’abbreviazione di else if, cioè altrimenti se.
if condizione:
istruzioni_1
elif condizione:
istruzioni_2
….
elif condizione:
istruzioni_n
else:
istruzioni
Primo esempio
Realizziamo dunque un primo esempio d’utilizzo del costrutto if elif else.
Realizzare un programma, che legga in input un voto rappresentato da un carattere tra A ed E e dopo ne stampi il significato.
Consideriamo ad esempio che:
A corrisponde a ottimo;
B corrisponde a distinto;
C corrisponde a discreto;
D corrisponde a sufficiente;
E corrisponde a insufficiente.
Innanzitutto prendiamo in input il voto e dopo lo confrontiamo con una delle lettere per stampare in output il voto corrispondente. Se la lettera non corrisponde a nessuna delle predefinite si visualizzerà un messaggio d’errore.
Ecco dunque una possibile soluzione che utilizza il costrutto if elif else in Python:
voto=input('Inserisci il voto A, B, C, D o E: ')
if voto=='A':
print('Il voto', voto, ' corrisponde a ottimo')
elif voto=='B':
print('Il voto', voto, ' corrisponde a distinto')
elif voto=='C':
print('Il voto', voto, ' corrisponde a discreto')
elif voto=='D':
print('Il voto', voto, ' corrisponde a sufficiente')
elif voto=='E':
print('Il voto', voto, ' corrisponde a insufficiente')
else:
print('la lettera inserita non corrisponde a nessun voto')
Secondo esempio
Facciamo un altro esempio per capire meglio così l’utilizzo del costrutto.
Su una linea ferroviaria, rispetto alla tariffa piena, i pensionati usufruiscono di uno sconto del 10%, gli studenti del 15% e infine i disoccupati del 25%.
Allora, codificando i pensionati con una P, gli studenti con una S e i disoccupati con una D, scrivere un programma che, richiesto il costo di un biglietto e l’eventuale condizione dell’utente, visualizzi l’importo da pagare.
Innanzitutto prendiamo in input il prezzo e lo stato, cioè se l’utente è disoccupato, pensionato o uno studente.
Dopo basta controllare lo stato e di conseguenza calcolare il prezzo del biglietto.
Ecco quindi una possibile risoluzione che utilizza il costrutto if elif else:
prezzo=float(input('Inserisci il prezzo del biglietto: '))
stato=input('Inserisci lo stato sapendo che D=Disoccupato, P=pensionato, S=studenti: ')
if stato=='D':
prezzo=prezzo*75/100
elif stato=='P':
prezzo=prezzo*90/100
elif stato=='S':
prezzo=prezzo*85/100
else:
prezzo=prezzo
print('Appartieni alla categoria ', stato, ' quindi pagherai: ', prezzo)
Se già avete dimestichezza al posto di prezzo=prezzo*75/100 scrivete pure prezzo*=0,75 e così via.
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Come utilizzare le stringhe
5 – Casting
6 – Input e print
7 – Primi esercizi in Python
8 – Come gestire gli errori in Python