[teaser]In questa nuova articolo su Python, introduciamo a grandi linee gli oggetti e vediamo alcuni metodi importanti ed utili[/teaser]

Tutti i tipi di dato che abbiamo visto nelle lezioni precedenti (str, list, int..) in Python, sono in verità degli oggetti.
Chi è familiare alla programmazione sa già di cosa parliamo, per i novizi invece per quello che ci serve vi basterà sapere che gli oggetti sono a base della metodologia di programmazione OOP ([highlight1]object-oriented programming[/highlight1] – programmazione orientata agli oggetti) e che ogni oggetto ha (generalmente) dei metodi.[pullquote1 align=”right”]In Python, tutti i tipi di dato sono Oggetti.[/pullquote1]

Possiamo pensare ai metodi quasi come funzioni, anche se vengono usate in modo diverso. Prendiamo per esempio l’oggetto object e il metodo method, per richiamare il metodo della funzione facciamo:

object.method(parametri)

Le funzioni invece, come abbiamo visto nella precedente lezione, si richiamano così:

funzione(parametri)

Ogni oggetto ha dei metodi particolari e volendo è possibile creare dei nuovi tipi di dato, ma questo lo vedremo meglio più avanti.

Come già abbiamo detto, per ora vi basterà sapere che in Python tutti i tipi di dato sono oggetti e che gli oggetti hanno dei metodi che useremo continuamente ed è quindi bene conoscere quelli più utili.

Inoltre, quando avremo bisogno di aiuto, potremo digitare nella consolle di Python:

help(oggetto)

Per avere una documentazione su cosa serve l’oggetto, ed avere una lista di tutti i metodi disponibili ed i loro utilizzi.
Per esempio, dando:

 help(string)

Avremo la documentazione sul tipo stringa. Quello che possiamo leggere nelle prime righe è:

 | Return a nice string representation of the object.
 | If the argument is a string, the return value is the same object.

A riprova del fatto che quando noi gli “diamo” una stringa, lui la trasforma in un oggetto stringa.

Metodi sulle Stringhe

Ecco alcuni metodi utili per manipolare le stringhe:

Uppercase e Downcase

Sono due metodi che permettono, rispettivamente, di trasformare la stringa tutta in maiuscolo o tutta in minuscolo:

stringa = "stringa in minuscolo"
uppercase.stringa()
print stringa #Printa: STRINGA IN MINUSCOLO
downcase.stringa()
print stringa #Printa: stringa in minuscolo

Contare le ricorrenze: Count

Il metodo count ci permette di contare le ricorrenze di una stringa dentro ad un’altra:

stringa= "Questo e' un esempio di stringa."
print stringa.count('Q') #Printa: 1
print stringa.count('es')#Printa: 2

Prima ricorrenza: Find

Il metodo find ci permette di trovare la prima ricorrenza di una stringa, in caso non ci sia ritorna -1:

stringa= "Questo e' un esempio di stringa."
print stringa.find('es')# Printa: 2
print stringa.find('es',2)#Comincia a cercare dall'indice 2
print stringa.find('es',2,10)# Comincia a cercare dall' indice 2 e finisce all' indice 10

Le linee in una lista: Splitlines

Questo metodo ci permette di mettere come elemento di una lista ogni riga di una stringa:

stringa="Questo e'
un esempio
di stringa."
print stringa.splitlines()#Printa: ['Questo è', 'un esempio', 'di stringa']

Questo metodo ci sarà molto utile quando parleremo di modifica di file (di testo).

Substringhe

Possiamo ottenere parti di una stringa utilizzando questa sintassi:

stringa= "Questa e' una stringa."
print stringa[1:3] #Printa:ues
print stringa[1]#Printa: uesta è una stringa
print stringa[-1]#Utilizzando i numeri negativi, contiamo dalla fine. Printerà: .
print stringa[-4]#Printa: nga.

Lista in base ad un parametro: Split

Il metodo splitlines ci permette di avere la lista di elementi di una stringa separati da “a capo” (ovvero gli \n), se invece abbiamo altri divisori nella stringa (per esempio abbiamo dei valori divisi da “-” o “:” o qualsiasi carattere vogliamo), utilizziamo il metodo split:

stringa = "Questa e' una stringa."
print stringa.split() #Di default e senza parametri, usa lo spazio come separatore. Printa: ['Questa', 'e\'', 'una','stringa.']
stringa2 = "Una-stringa"
print stringa2.split('-')#Printa: ['Una','stringa']

 Sostituire una ricorrenza: Replace

Replace è un utilissimo metodo delle stringhe che ci permette di sostituire una stringa con un’altra:

stringa= "Questa e' una stringa."
print stringa.replace("una stringa", "due stringhe")#Sostituisce "una stringa" con "due stringhe"

Metodi per le Liste

Alcuni metodi utile per manipolare le liste. Ricordiamo che per avere una lista completa vi basta digitare “help(list)” dalla shell di Python.

Contare le ricorrenze: Count

Come per le stringhe, anche nelle liste abbiamo il metodo count che ci permette di cercare il numero di ricorrenze fra gli elementi della lista

lista = ['Questo e\'', 'un esempio', 'di lista']
lista.count('u')#Ritorna: 2

Contare gli elementi: Len

Se invece di contare delle ricorrenze, vogliamo sapere il numero di elementi della lista usiamo il metodo len:

lista = ['Questo e\'', 'un esempio', 'di lista']
lista.len()#Ritorna: 3

Trovare una ricorrenza: Index

L’analogo del find per le liste, se però non è presente la ricorrenza abbiamo invece che il “-1” un errore di Python.

lista = ['Questo e\'', 'un esempio', 'di lista']
lista.index("Q")#Ritorna: 1

Aggiungere un elemento alla fine della lista: Append

Per aggiungere un elemento alla fine della lista, usiamo il metodo Append:

lista = ['Questo e\'', 'un esempio', 'di lista']
lista.append('Ciao')#Ritorna: ['Questo e\'', 'un esempio', 'di lista', 'Ciao']

Aggiungere un elemento in una certa posizione: Insert

Come Append ci permette di inserire un elemento nella lista, però ci permette anche di sceglierne la posizione:

lista = ['Questo è', 'un esempio', 'di lista']
lista.insert(0,'Ciao')# Ritorna:['Ciao', 'Questo e\'', 'un esempio', 'di lista']

Rimuovere la prima ricorrenza: Remove

Il metodo Remove ci permette di rimuovere la prima ricorrenza di qualcosa che gli diamo come parametro:

lista = ['Questo e\'', 'un esempio', 'di lista']
lista.remove('Questo e\'')#Ritorna:['un esempio', 'di lista']

Rimuovere e tornare un elemento: Pop

Con questo metodo non solo possiamo rimuovere un’elemento nella posizione che vogliamo (di default e quindi senza parametri, rimuove l’ultimo) ma in più ce lo ritorna e ci permette quindi di usarlo magari per un’altro scopo:

lista = ['Questo è', 'un esempio', 'di lista']
lista.pop()#Ritorna: 'di lista'
print lista #Printa:['Questo è', 'un esempio']

Bene, vi abbiamo fornito un pò di metodi molto utili che ci permettono di realizzare programmi sempre più complessi, come già ribadito un paio di volte per avere la lista di metodi completa vi basta dare:

help(oggetto)

Di volta in volta comunque, specificheremo l’effetto dei metodi che non abbiamo ancora visto mentre li utilizziamo.