La programmazione ad oggetti

Diamo un’introduzione sulla programmazione ad oggetti prima di affrontarla con Python.

Con il termine di OOP, ovvero Object Oriented Programming, intendiamo un paradigma di programmazione. In questo paradigma un programma può essere visto come un insieme di oggetti che interagiscono tra loro.

Finora, per lo sviluppo dei nostri programmi, abbiamo seguito un approccio procedurale e/o funzionale.

Ricordiamo che nell’approccio procedurale si eseguono le istruzioni secondo un ordine predefinito per ottenere il risultato desiderato, partendo dai dati di input.

Nell’approccio funzionale abbiamo utilizzato le funzioni da poter poi richiamare all’occorrenza anche in un programma principale detto main().

Adesso, nella programmazione orientata agli oggetti seguiremo un approccio che segue l’idea di utilizzare delle unità funzionali autonome.

Chiaramente i vari approcci possono essere utilizzati assieme.

La programmazione ad oggetti – OOP

Questo tipo di programmazione prende nome proprio dall’elemento su cui si basa, ovvero l’oggetto.

Un oggetto rappresenta dunque l’entità del problema. Infatti in esso possiamo memorizzare le informazioni che riguardano il suo stato ed associare un insieme di operazioni che esso può compiere.

Un oggetto può avere dunque degli attributi e dei metodi.

Gli attributi sono gli elementi che caratterizzano l’oggetto, cioè che lo descrivono.

I metodi invece sono le funzionalità che l’oggetto mette a disposizione.

Un classico esempio può essere rappresentato dall’oggetto auto. Questo oggetto può avere infatti degli attributi e dei metodi, facilmente classificabili.

Gli attributi possono ad esempio essere:

  • Casa_Produttrice
  • Cilindrata
  • Numero_Porte
  • Alimentazione
  • Potenza
  • ecc…

Mentre i metodi possono essere ad esempio:

  • Cambio_Marcia
  • Accelera
  • Frena
  • Rifornisci
  • ecc…

Come possiamo notare gli attributi sono le caratteristiche dell’auto, mentre i metodi sono le azioni che si possono esercitare sull’auto come accelerare, frenare, ecc.

La programmazione ad oggetti – Classe

Diamo un altro concetto importante per la programmazione ad oggetti, ovvero quello di classe.

La classe è la descrizione astratta dell’oggetto attraverso i suoi attributi e metodi. Infatti, per poter utilizzare un oggetto occorre creare una sua istanza.

Per rappresentare una classe si può usare anche uno schema grafico, ovvero un diagramma della classe che serve a identificare il nome, i suoi attributi e i suoi metodi.

Come ad esempio questo diagramma rappresentato nella tabella sotto:

Auto
Attributi
Casa_Produttrice
Cilindrata
Numero_Porte
Alimentazione
Metodi
Cambio_Marcia
Accelera
Frena
Rifornisci

Dopo aver definito una classe, nella programmazione ad oggetti, possiamo rappresentare le sue istanze.

Ad esempio:

Auto1

Casa_Produttrice: Fiat
Cilindrata: 60 kw
Numero_Porte: 5
Alimentazione: Diesel

Auto2

Casa_Produttrice: Maserati
Cilindrata: 90 kw
Numero_Porte: 5
Alimentazione: Diesel

Abbiamo definito così delle istanze dell’oggetto auto specificando i suoi attributi, in questo modo possiamo identificare le due auto facilmente ed utilizzarle all’interno dei nostri programmi.

Conclusioni

In questa lezione abbiamo semplicemente fornito un’introduzione sulla programmazione orientata agli oggetti, nelle prossime lezioni approfondiremo in dettaglio questi concetti.

Alcuni link utili

Indice tutorial sul linguaggio Python

Operazioni con i file in Python

Introduzione ai dizionari in Python

Creare matrici in Python

Funzione lambda in Python

Utilizzare Plot di Matplotlib

Quali sono i metodi delle liste

Continua la lettura su: https://www.codingcreativo.it/la-programmazione-ad-oggetti/ Autore del post: Coding Creativo Fonte: https://www.codingcreativo.it

Articoli Correlati

Emergenza Coronavirus COVID-19: notizie e provvedimenti

Ordinanza del 2 giugno 2021 Ulteriori misure urgenti in materia di contenimento e gestione dell’emergenza epidemiologica da COVID-19. 

Ordinanza 29 maggio 2021 Ai fini del contenimento della diffusione del virus Sars-Cov-2, le attività economiche e sociali devono svolgersi nel rispetto delle “Linee guida per la ripresa delle attività economiche e sociali”, elaborate dalla Conferenza delle Regioni e delle Provincie autonome, come definitivamente integrate e approvate dal Comitato tecnico scientifico, che costituiscono parte integrante della presente ordinanza

Ordinanza 21 maggio 2021 Protocollo condiviso di aggiornamento delle misure per il contrasto e il contenimento della diffusione del virus SARS-Cov-2/COVID-19 negli ambienti di lavoro.

Ordinanza 21 maggio 2021 Linee guida per la gestione in sicurezza di attivita’ educative non formali e informali, e ricreative, volte al benessere dei minori durante l’emergenza COVID-19.

Ordinanza 21 maggio 2021 Ulteriori misure urgenti in materia di contenimento e gestione dell’emergenza epidemiologica da COVID-19.

Ordinare un dizionario in Python

Si può ordinare un dizionario in Python per chiave o per valore. Facciamo alcuni esempi pratici di ordinamento in Python in base alle nostre esigenze.

Tutti gli esempi proposti possono essere provati nel compiler online che troverete al seguente link: Python compiler online.

Primo esempio – Ordinare un dizionario in Python per chiave

In questo primo esempio dapprima creiamo un dizionario in Python. Abbiamo poi detto di ordinare per chiave, quindi dobbiamo decidere se seguire un ordine crescente o decrescente, infine dobbiamo richiamare la funzione sul dizionario.

Implementiamo, dunque, una prima soluzione. Per ordinare in senso crescente possiamo utilizzare la funzione sorted sul nostro dizionario, in questo modo:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

for key in sorted(student):
print(key, student[key])

E se vogliamo un ordinamento decrescente? Basterà semplicemente utilizzare il parametro reverse della funzione sorted, impostandolo a False.

Ecco un esempio di dizionario ordinato in senso decrescente in Python:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

for key in sorted(student, reverse = True):
print(key, student[key])

Secondo esempio – Ordinare un dizionario in Python per chiave

Cerchiamo adesso una seconda soluzione al problema proposto.

Innanzitutto potremmo ad esempio pensare di utilizzare il metodo keys() sul dizionario, ma cosa succede?

Proviamolo, dunque, con un esempio:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

sorted_key = sorted(student.keys())

for element in sorted_key:
print(element)

In questo caso si avrà il seguente output:

age
hobby
mail
name
passion

Ovvero avremo le sole chiavi ordinate in senso crescente.

Quindi, anche se uso il metodo dict() non riuscirò in questo modo ad ordinare un dizionario in Python.

E se invece proviamo ad utilizzare il metodo values()?

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

sorted_values = sorted(student.values())

for element in sorted_values:
print(element)

Il risultato sarà il seguente:

29
Cristina
coding
codingcreatico@gmail.com
swim

Quindi se voglio ordinare un dizionario in Python per chiave cosa devo fare? Quale altra soluzione posso pensare?

Possiamo, ad esempio, utilizzare il metodo items(), che abbiamo studiato in questa lezione: items Python.

Ricordiamo inoltre che questo metodo è utilizzato per restituire l’elenco con tutte le chiavi del dizionario con i suoi rispettivi valori.

Dopo, possiamo nuovamente riconvertire le coppie di tuple in un dizionario utilizzando il metodo dict().

Ecco una possibile soluzione al nostro algoritmo:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

sorted_student = sorted(student.items())
sorted_student_dict = dict(sorted(student.items()))

print(sorted_student_dict)

for element in sorted_student_dict:
print(element, ‘: ‘, sorted_student_dict[element])

Così abbiamo ottenuto tutte le coppie di tuple chiave, valori ordinate in senso crescente. Poi, convertiamolo in dizionario con il metodo dict(). Così riusciamo ad ordinare il dizionario in Python per chiave.

Utilizziamo una funzione per poterla poi utilizzare per creare l’ordinamento su più dizionari:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

def sort_dict(d):
return dict(sorted(student.items()))

print(sort_dict(student))

Ordinare un dizionario in Python per chiave in senso decrescente

Questa volta utilizziamo il parametro reverse di sorted per creare un ordinamento decrescente sui dizionari. Infatti impostandolo a True l’ordinamento sarà decrescente. Di default il suo valore è False.

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

def sort_dict(d):
return dict(sorted(student.items(), reverse = True))

print(sort_dict(student))

Per completezza potremmo passare questo parametro anche alla funzione, in questo modo:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

def sort_dict(d, rev):
return dict(sorted(student.items(), reverse = rev))

print(sort_dict(student, True))

Conclusione

In questa lezione abbiamo affrontato alcuni interessanti esempi su come ordinare un dizionario in Python per chiave, in ordine crescente e decrescente.

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

Vuoi rimanere aggiornato sulle nuove tecnologie per la Didattica e ricevere suggerimenti per attività da fare in classe?

Sei un docente?

soloscuola.it la prima piattaforma
No Profit gestita dai

Volontari Per la Didattica
per il mondo della Scuola. 

 

Tutti i servizi sono gratuiti. 

Associazione di Volontariato Koinokalo Aps

Ente del Terzo Settore iscritta dal 2014
Tutte le attività sono finanziate con il 5X1000