Math Python

Math Python

In questa lezione esploreremo le varie funzioni offerte dal modulo math in Python, che permette di eseguire operazioni matematiche avanzate come la radice quadrata, il calcolo del fattoriale, il logaritmo e altro ancora. Inoltre, fornisce costanti utili come math.pi, che rappresenta il valore di Pi.

Esplorare le Funzioni del Modulo Math in Python

Prima di iniziare, possiamo visualizzare tutte le funzioni disponibili nel modulo math utilizzando il comando help('math') in modalità interattiva. Questo ci permette di ottenere una panoramica delle funzioni matematiche a nostra disposizione.

help('math')

Nella figura sotto vi mostro alcune delle funzioni matematiche.

Dunque, fate voi la prova a digitare la funzione help(‘math’) in maniera da visionarle tutte.

help math

Disponibile il libro su Python “50 Algoritmi per imparare Python”


Utilizzo del modulo Math in Python

Per comprendere meglio il funzionamento del modulo math, consideriamo un esempio pratico.

Data l’ipotenusa e un cateto di un triangolo rettangolo, calcolarne l’area.

Per realizzare l’algoritmo mi occorre innanzitutto prendere in input i due dati. Dopo aver preso in input l’ipotenusa ed un cateto, così come richiesto dal problema, posso, tramite il teorema di Pitagora, calcolare l’altro cateto.

Quindi, in questo caso, ci servirà la funzione sqrt, che rappresenta la radice quadrata, per calcolare l’altro cateto.

Ma, prima di poterla utilizzare, dobbiamo importare il modulo utilizzando il comando import math.

import math

# Dati in input
cateto = int(input('Inserisci un cateto: '))
ipotenusa = int(input('Inserisci l\'ipotenusa: '))

# Calcolo del secondo cateto utilizzando il teorema di Pitagora
cateto2 = math.sqrt(pow(ipotenusa, 2) - pow(cateto, 2))

# Calcolo e visualizzazione dell'area del triangolo
area = cateto * cateto2 / 2
print('L\'area del triangolo è:', area)

Notate che la funzione pow posso utilizzarla anche senza includere il modulo math.

Secondo esempio Math in Python

Un altro esempio pratico è il calcolo dell’area di un cerchio utilizzando la costante math.pi.

import math

raggio = float(input('Inserisci il raggio: '))
area = math.pi * raggio * raggio
print('L\'area del cerchio di raggio', raggio, 'è:', area)

Avrei potuto anche scrivere:

area = math.pi * pow(raggio, 2)

Oppure:

area = math.pi * raggio ** 2

Conclusione

In questa lezione abbiamo esaminato solo alcuni esempi del potente modulo math in Python. Le funzioni e le costanti offerte da questo modulo ci consentono di eseguire calcoli matematici avanzati con facilità. Nelle prossime lezioni esploreremo ulteriori esercizi che coinvolgono questo importante modulo di Python. Continua a praticare e a sperimentare con le varie funzioni per migliorare le tue competenze di programmazione in Python.

Alcuni link utili

Corso in diretta su Python

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

Massimo fra tre numeri in C++

Massimo fra tre numeri in C++

Realizziamo un algoritmo per il calcolo del massimo fra tre numeri in C++, cioè dell’elemento più grande dei tre inseriti in input.

Proponiamo varie soluzioni al fine di confrontarle.

Prima soluzione massimo fra tre numeri in C++

La prima soluzione in poche parole traduce il diagramma di flusso che ho presentato in questo tutorial: massimo fra tre numeri.

In questa soluzione si tralascia, per il momento, il caso in cui i tre numeri possano essere uguali.

Chiediamo l’inserimento dei tre numeri e poi valutiamo:

a>b se è vero inseriamo un if annidato dove ci chiediamo se a è anche maggiore di c:

a>c se è vero dunque a è il maggiore;

altrimenti il maggiore chiaramente è c.

Se invece b>a è vero, inseriamo un if annidato dove controlliamo se anche b è maggiore di c.

b>c se è vero dunque b è il maggiore;

altrimenti il maggiore ovviamente sarà c.

Ecco dunque l’algoritmo in C++:

#include<iostream>
using namespace std;

int main() {
	int a,b,c;
	
	cout<<"Inserisci il primo numero: ";
	cin>>a;
	cout<<"Inserisci il secondo numero: ";
	cin>>b;
	cout<<"Inserisci il terzo numero: ";
	cin>>c;
	
	if(a>b)
		if(a>c)
	    		cout<<"Il numero maggiore e': "<<a;
	    	else
	    		cout<<"Il numero maggiore e': "<<c;
	else 
		if (b>c)
	    		cout<<"Il numero maggiore e': "<<b;
		else
			cout<<"Il numero maggiore e': "<<c;
	return 0;
}

Seconda soluzione – maggiore fra tre numeri in C++

La seconda soluzione implementa il secondo algoritmo presentato sempre in questa lezione: massimo fra tre numeri.

Questa soluzione è più snella della seconda e fa uso di una variabile max dove memorizzare il valore.

#include<iostream>
using namespace std;

int main() {
	int a,b,c,max;
	
	cout<<"Inserisci il primo numero: ";
	cin>>a;
	cout<<"Inserisci il secondo numero: ";
	cin>>b;
	cout<<"Inserisci il terzo numero: ";
	cin>>c;
	
	max=a;	
	
	if(b>max)
	    max=b;
	if(c>max)
	    max=c;

	cout<<"Il numero maggiore e': "<<max;
	return 0;
}

Potrei direttamente scrivere:

cout<<“Inserisci il primo numero: “; cin>>max;

Evitando così l’uso di una variabile.

Terza soluzione

Nella terza soluzione si fa uso degli operatori logici ed in particolare dell’and.

Aggiungiamo anche il caso in cui i tre numeri siano uguali e quindi visualizziamo un messaggio opportuno in ouput.

#include<iostream>
using namespace std;

int main() {
	int a,b,c;
	
	cout<<"Inserisci il primo numero: ";
	cin>>a;
	cout<<"Inserisci il secondo numero: ";
	cin>>b;
	cout<<"Inserisci il terzo numero: ";
	cin>>c;
	
	if(a==b && a==c)
	    cout<<"I tre numeri sono uguali ";
	else if(a>b && a>c)
	    cout<<"Il numero maggiore e': "<<a;
	else if(b>c)
	    cout<<"Il numero maggiore e': "<<b;
	else
	    cout<<"Il numero maggiore e': "<<c;
	return 0;
}

Ecco alcune possibili risoluzioni dell’algoritmo per la ricerca del valore massimo fra tre inseriti in C++.

Alcuni link utili

Indice argomenti linguaggio C++

1- Introduzione al linguaggio C++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++

Alcuni tutorial in C

Somma elementi diagonale principale di una matrice

Sommare elementi della cornice esterna di una matrice in C

Somma di due matrici in C

Sommare dei numeri di una matrice in C

Prodotto tra matrici in C

Come ricercare gli elementi in una matrice in C

Inserire dati in una matrice in C

Tavola pitagorica in C

Scambio di variabili in Python

Scambio di variabili in Python

In questa lezione implementeremo un semplice algoritmo per lo scambio di variabili in python, al fine di introdurre anche il concetto di assegnazione multipla. L’obiettivo è scambiare i valori di due variabili, in modo che alla fine la prima variabile contenga il valore della seconda e viceversa.

Ecco dunque il problema da risolvere:

Dati in input i valori di due variabili a e b, vogliamo scambiarne i valori, così che al termine a contiene il valore di b e b quello di a.

Scambio di variabili in Python con la variabile temporanea

Come prima, sviluppiamo una soluzione che non è molto utilizzata in Python in quanto si utilizzano altri metodi spiegati successivamente a questo esempio.

Per scambiare i valori di due variabili, utilizziamo una variabile temporanea di appoggio.

Quindi, seguiamo questi passaggi:

  1. Memorizziamo il valore di a nella variabile temporanea.
  2. Assegniamo il valore di b a a.
  3. Assegniamo il valore memorizzato nella variabile temporanea a b.

Ecco dunque il codice di esempio:

# Richiediamo all'utente di inserire i valori delle variabili a e b
a = int(input("Inserisci il valore di a: "))
b = int(input("Inserisci il valore di b: "))

# Stampiamo i valori iniziali delle variabili
print("I valori inseriti sono a:", a, "e b:", b)

# Utilizziamo una variabile temporanea per lo scambio
temp = a
a = b
b = temp

# Stampiamo i valori delle variabili dopo lo scambio
print("Dopo lo scambio, i valori sono a:", a, "e b:", b)

Come dicevamo Python offre un’opzione più concisa utilizzando l’assegnazione multipla.

Disponibile il libro su Python “50 Algoritmi per imparare Python”

Assegnazione Multipla in Python

Prima di procedere dunque con il secondo metodo per lo scambio di variabili, è importante comprendere il concetto di assegnazione multipla in Python. Con questa tecnica, è possibile assegnare più variabili allo stesso valore contemporaneamente. Ad esempio:

a = b = 5

In questo caso, sia a che b assumono il valore di 5. Inoltre, è possibile assegnare valori diversi a più variabili nello stesso statement, come segue:

a, b = 5, 4

In questo modo, a assume il valore 5 e b assume il valore 4.

Implementazione dello Scambio di Variabili

Ora che abbiamo compreso il concetto di assegnazione multipla, possiamo procedere con l’implementazione dello scambio di variabili. Utilizzeremo l’assegnazione multipla per scambiare i valori delle variabili a e b. Ecco il problema da risolvere:

Ecco dunque il codice che risolve l’algortimo:

# Richiediamo all'utente di inserire i valori delle variabili a e b
a = int(input("Inserisci il valore di a: "))
b = int(input("Inserisci il valore di b: "))

# Stampiamo i valori iniziali delle variabili
print("I valori inseriti sono a:", a, "e b:", b)

# Eseguiamo lo scambio di variabili utilizzando l'assegnazione multipla
a, b = b, a

# Stampiamo i valori delle variabili dopo lo scambio
print("Dopo lo scambio, i valori sono a:", a, "e b:", b)

Teniamo conto, anche in questo caso che ci potrebbero essere situazioni in cui l’assegnazione multipla non è appropriata o non disponibile. In tali casi, l’utilizzo di una variabile temporanea per lo scambio di valori rimane una scelta affidabile e leggibile.

Inoltre, capire e padroneggiare diverse tecniche per lo scambio di variabili è importante, poiché ci consente di adattarci a diverse situazioni e stili di programmazione. Quindi, anche se l’assegnazione multipla è un’opzione più elegante in molti casi, conoscere e comprendere altre tecniche come l’utilizzo di una variabile temporanea rimane una parte preziosa delle competenze di programmazione in Python.

Conclusioni

In questo articolo abbiamo esplorato diverse tecniche per lo scambio di variabili in Python, focalizzandoci sull’utilizzo di una variabile temporanea e sull’assegnazione multipla. Abbiamo visto che entrambe le tecniche sono valide e utilizzabili, ma possono essere preferite in diverse situazioni a seconda del contesto e delle esigenze del programma.

L’utilizzo di una variabile temporanea è utile quando si desidera mantenere intatti i valori originali delle variabili o quando l’assegnazione multipla non è applicabile.

D’altra parte, l’assegnazione multipla offre un approccio più conciso e leggibile per lo scambio di variabili, ed è particolarmente utile quando si lavora con più variabili contemporaneamente.

Indipendentemente dalla tecnica utilizzata, è importante comprendere le varie opzioni disponibili per lo scambio di variabili e sapere quando e come applicarle efficacemente nel proprio codice.

Grazie per aver letto questo articolo, spero che sia stato utile nel comprendere le diverse tecniche per lo scambio di variabili in Python. Buona programmazione!

Alcuni link utili

Corso in diretta su Python

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili in Python

3 – Operatori aritmetici e di assegnazione in Python

4 – Stringhe in Python

5 – Casting in Python

6 – Input e print in Python

7 – Primi esercizi in Python

8 – Errori in Python

Script Python

Script Python

In questa lezione impareremo come creare gli script in Python, quindi lasciamo la modalità interattiva vista finora.

Un modo per creare gli script in Python è utilizzare ad esempio il semplice blocco note. Si scrive il codice e si salva il file dando un nome idoneo e un’estensione .py, avendo cura di aver selezionato tutti i file.

Per eseguire lo script basta andare nel prompt dei comandi, inserire il percorso del file e premere invio, come da schermata sotto:

Ecco come avviare il prompt:

script

Una volta aperto il prompt vado nel percorso specificato, nel mio caso la cartella Python_esercizi e poi avvio lo script che ho creato in precedenza di nome area_quadrato.py.

Ecco che verrà eseguito lo script. Infatti mi viene chiesto di inserire i dati, così come avevo programmato.

python esercizi

Quindi avviamo l’IDLE e, una volta aperto, andiamo nel menù File e scegliamo New file. In questo modo si aprirà l’editor con il quale si può scrivere il testo sorgente.

Disponibile il libro su Python “50 Algoritmi per imparare Python”


Primo script in python

Realizziamo quindi il nostro primo script.

Prendere in input il lato di un quadrato, calcolare e visualizzare l’area.

Possibile soluzione:

'''
primo script
Calcoliamo l'area di un quadrato
'''

lato = int(input('Inserisci il lato del quadrato:'))

area = lato * lato

print('l\'area del quadrato è:', area)

Il testo inserito tra apici ”’ è il commento che può essere chiaramente tralasciato, come vi ho già spiegato nelle altre lezioni.

Notate che ho inserito dentro l’input il messaggio: ‘Inserisci il lato del quadrato‘ per dare un messaggio all’utente.

Script Python – salvare il file

Adesso salviamo il file con estensione .py andando nel menù File e poi su Save As. Dunque diamo il nome di area_quadrato.py per semplicità.

Controlliamo che non ci siano errori andando nel menu Run e poi Check Module.

Se è tutto ok, possiamo eseguire il nostro programma andando su Run Module sempre del menu Run, in alternativa potete premere il pulsante F5.

Ecco la figura che mostra il passaggio da fare:

run module

In questo modo partirà il programma nella finestra della Shell che vi chiederà di inserire il lato del quadrato.

shell python

In questa lezione abbiamo sviluppato un esempio di script in Python.

Alcuni link utili

Corso in diretta su Python

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili in Python

3 – Operatori aritmetici e di assegnazione in Python

4 – Stringhe in Python

5 – Casting in Python

6 – Input e print in Python

7 – Primi esercizi in Python

Errori in Python

Errori in Python

In questo tutorial parlermo di come correggere gli errori in Python. Durante lo sviluppo in Python, è comune commettere errori. Tuttavia, imparare a riconoscere e correggere questi errori è fondamentale per migliorare le capacità di programmazione.

Tipi di Errori in Python

Ci sono dunque vari tipi di errori, vediamo alcuni:

1. Errori Lessicali in Python

Gli errori lessicali derivano dall’uso di termini che non appartengono al linguaggio. Ad esempio:

a = intero(input())

In questo caso, intero non è definito, non appartiene al linguaggio e l’interprete restituirà un NameError.

2. Errori Sintattici in Python

Gli errori sintattici si verificano quando il codice viola la sintassi del linguaggio. Questi possono includere:

  • Utilizzo di parole chiave per altri scopi.
  • Mancata chiusura di parentesi o utilizzo errato di operatori.
  • Mancanza di due punti alla fine delle istruzioni composte.
  • Errori di indentazione.

Esempi di errori sintattici:

for = 15
lato = int(input))

In entrambi i casi si genera un SyntaxError.

3. Errori Logici o di Semantica in Python

In questo caso si deve trovare l’errore nella risoluzione dell’algoritmo. Sicuramente dal punto di vista logico ci sarà qualcosa che non funziona, quindi occorre nuovamente rivedere la possibile risoluzione.

Un semplice suggerimento intanto è quello di capire qual è la parte che non funziona, andando passo passo, così da dedicarsi solo su quella.

Disponibile il libro su Python “50 Algoritmi per imparare Python”

4. Errori di Runtime

Gli errori di runtime si verificano durante l’esecuzione del programma. Questi possono includere eccezioni o loop infiniti. È essenziale comprendere il contesto in cui si verifica l’errore per correggerlo efficacemente.

5. Errori di Tipo (Type Errors) in Python

Gli errori di tipo si verificano quando si tenta di eseguire operazioni non valide su tipi di dati incompatibili. Ad esempio, sommare una stringa e un intero genererà un errore di tipo.

numero = 10
testo = "5"
somma = numero + testo  
# Questo genererà un TypeError

6. Errori di Attributo (Attribute Errors) in Python

Gli errori di attributo si verificano quando si tenta di accedere a un attributo o un metodo di un oggetto che non esiste.

lista = [1, 2, 3]
lunghezza = lista.len()  
# Questo genererà un AttributeError poiché non esiste un metodo 'len' per le liste

7. Errori di Indice (Index Errors)

Gli errori di indice si verificano quando si tenta di accedere a un elemento di una sequenza utilizzando un indice non valido.

lista = [1, 2, 3]
elemento = lista[4]  
# Si genera un IndexError poiché l'indice 4 non esiste nella lista

8. Errori di Divisione per Zero (ZeroDivision Errors)

Gli errori di divisione per zero si verificano quando si tenta di dividere per zero.

risultato = 10 / 0  
# Si genera un ZeroDivisionError

9. Errori di File (File Errors) in Python

Gli errori di file si verificano quando si tenta di aprire, leggere, scrivere o chiudere un file che non esiste o che non può essere accesso per qualche motivo.

file = open("file_inesistente.txt", "r")  
# Si genera un FileNotFoundError se il file non esiste

Gestione degli errori in Python

Per gestire questi tipi di errori, è possibile utilizzare le istruzioni try ed except per catturare gli errori e gestirli in modo appropriato. Ad esempio:

try:
    risultato = 10 / 0
except ZeroDivisionError:
    print("Impossibile dividere per zero!")

Questo codice catturerà un ZeroDivisionError e stampa un messaggio appropriato senza interrompere l’esecuzione del programma.

Approfondiremo la gestione delle eccezioni più avanti, in una lezione dedicata.

Conclusioni

La gestione degli errori è una parte essenziale dello sviluppo in Python. Imparare a riconoscere e correggere gli errori non solo migliora le capacità di programmazione, ma rende anche il codice più robusto e affidabile. Durante lo sviluppo in Python, è comune incontrare vari tipi di errori, tra cui errori lessicali, sintattici, logici, di runtime e altri errori specifici come errori di tipo, attributo, indice e divisione per zero.

Tuttavia, utilizzando le istruzioni try ed except, è possibile gestire efficacemente queste situazioni anomale, consentendo al programma di continuare a funzionare anche in presenza di errori. La capacità di gestire gli errori in modo efficiente è fondamentale per scrivere codice Python affidabile e di alta qualità.

Alcuni link utili

Corso in diretta su Python

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili in Python

3 – Operatori aritmetici e di assegnazione in Python

4 – Stringhe in Python

5 – Casting in Python

6 – Input e print in Python