python advanced 20-classioggetti-sintesi

11

Click here to load reader

Upload: studiabo

Post on 12-Apr-2017

5 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Python advanced 20-classioggetti-sintesi

Corso Data Journalist gen-mar 2017

PYTHON ADVANCED

Classi e oggettiUna visione d’insieme

Page 2: Python advanced 20-classioggetti-sintesi

Oggetti built-in

Non iterable Iterable

int

float

N1=10

F1=10.2

Attributi

N1.denominator N1.numeratorN1.imagN1.real

Attributi

F1.imagF1.real

Funzioni

F1.hex()F1.fromhex()

str S1='Bologna' S1[2]

Slicing

list L1=['A','B','C'] L1[2]

tupla T1=('A','B','C') T1[2]

set T1={'A','B','C'}

dict D1={'A':10,'B':20,'C':30}

D1['A']

Attributi

Nessuno

Nessuno

Nessuno

Nessuno

Nessuno

Funzioni

Spec.

Spec.

Spec.

Spec.

Spec.

Page 3: Python advanced 20-classioggetti-sintesi

Oggetti custom: definizione di una classe class AnnualTS:

'''La Classe AnnualTS serve ad istanziare un oggetto per la gestione/descrizione di una serie storica annuale.

'''def __init__(BASE, START, END, DATA):

BASE.LYEAR = [I for I in range(START,END+1)] BASE.DATA = DATA BASE.TS= dict(zip(BASE.LYEAR,BASE.DATA))

def __str__(BASE): STR="" for YEAR in BASE.LYEAR: STR=STR+'Anno {0}: {1} \n'.format( YEAR,BASE.TS[YEAR]) return STR

def Max(BASE): ''' Metodo per calcolare il massimo di una serie storica ''' MAX=0 for YEAR in BASE.LYEAR: if BASE.TS[YEAR]>MAX: MAX=BASE.TS[YEAR] return MAX

Attributi Metodi

Page 4: Python advanced 20-classioggetti-sintesi

Oggetti custom: istanza di una classe

TS1=AnnualTS(2000, 2005, [22,33,42,34,28,33])

AttributiTS1.LYEARTS1.DATAYS1.TS

MetodiTS1.Max()

-------TS1.__init__()TS1.__str__()

Page 5: Python advanced 20-classioggetti-sintesi

Oggetti custom inseriti in oggetti built-in iterable -1

TS1=AnnualTS(2000, 2005, [22,33,42,34,28,33])TS2=AnnualTS(2005, 2010, [122,133,142,134,128,133])

L1=[TS1,TS2]

Dati 2 oggetti custom

E’ possibile inserirli in una lista

La sintassi per calcolare il massimo della prima serie è:

L1[0].Max()

Page 6: Python advanced 20-classioggetti-sintesi

Oggetti custom inseriti in oggetti built-in iterable -2

TS1=AnnualTS(2000, 2005, [22,33,42,34,28,33])TS2=AnnualTS(2005, 2010, [122,133,142,134,128,133])

D1={'A':TS1,'B':TS2}

Dati 2 oggetti custom

E’ possibile inserirli in un dizionario

La sintassi per calcolare il massimo della prima serie è:

D1['A'].Max()

Page 7: Python advanced 20-classioggetti-sintesi

Oggetti custom inseriti in oggetti built-in iterable -3

S1=pandas.Series([22,33,42,34,28,33])S2=pandas.Series([122,133,142,134,128,133])

L1=[S1,S2]

Dati 2 oggetti Series di pandas

E’ possibile inserirli in una lista

La sintassi per calcolare il massimodella prima serie è:

L1[0].max()

La sintassi per estrarre il terzo valore della prima serie è:

L1[0].values[2]

Page 8: Python advanced 20-classioggetti-sintesi

Oggetti custom inseriti in oggetti built-in iterable -4

import matplotlib.pyplot as pltPL1=S1.plot()plt.show()

Il metodo plot di pandas restituisce un oggetto matplotlib.axes.AxesSubplot

La sintassi per estratte dall'oggetto PL1, il testo della label del 4 tick dell'asse x, è

PL1 .xaxis .get_ticklabels() [3] .get_text()

attributo oggettolist oggetto str

metodo metodo

Page 9: Python advanced 20-classioggetti-sintesi

Oggetti custom inseriti in oggetti built-in iterable -5

DF=pandas.DataFrame({'V1':[2,3,2,3,3],'V2':[4,5,4,8,5]})PL1=DF.plot()plt.show()

Il metodo plot di pandas restituisce un oggetto matplotlib.axes.AxesSubplot

La sintassi per estratte dall'oggetto PL1, il testo che descrive la seconda componente della legenda, è

PL1 .get_legend() .get_texts() [1] .get_text()

oggettolist oggetto str

metodo metodometodo

Page 10: Python advanced 20-classioggetti-sintesi

Catene di oggetti

Oggetto A

Attributo

Metodi

Oggetto B

Attributo

Metodi

Oggetto C

Attributo

Metodi

Page 11: Python advanced 20-classioggetti-sintesi

CONTATTI TELEFONO

051 22 35 20

EMAIL [email protected]