INTRODUZIONE A PYTHON                       Lezione 1           Paolo Ferretti per Deltapromo URL corso: http://corso-delt...
PYTHON• Python is a programming language that lets you work more quickly and integrate your systems more effectively. You ...
PERCHÈ PYTHON• Multi-piattaforma                  • Velocità   di sviluppo• Veloce                             • Produttiv...
CHI USA PYTHON• NASA                       • Google• Rackspace    (Hosting)     • Thawte     (certificati digitali)• Indust...
QUALE VERSIONE?• Ramo     2.x                    • Ramo    3.x • il   più utilizzato             • il   meno utilizzato • ...
QUALE VERSIONE?• Attualmente   è meglio sviluppare sul ramo 2.x • Django, SQLAlchemy, Google App       Engine e tutte le  ...
COME SI INSTALLA• Su Windows • installer   scaricabile da python.org • sconsigliato• Su   Linux • normalmente       è prei...
COME SI INSTALLA• Su   Mac OS X • preinstallato • macport • sorgenti
DOCUMENTAZIONE• Dal   sito ufficiale Python• Libro gratuito “Dive into Python” ( http://it.diveintopython.org/ )
SHELL• L’interprete            python, se lanciato da console senza argomenti, apre una shell
SHELL• Il   prompt >>> indica che possiamo inziare a lavorare• La    shell è utile   • per   provare piccoli snippets di c...
IPYTHON• Lo   strumento che ogni sviluppatore Python deve avere• Vantaggi  • colorazione   del codice  • autocompletamento...
INTRODUZIONE AL   LINGUAGGIO
VARIABILI• Linguaggio   dinamico  •itipi delle variabili vengono definiti a runtime e possono   variare  • una   variabile ...
CONVENZIONI PER LA         NOMENCLATURA• Nonostante la tipizzazione dinamica, anche Python ha delle convenzioni per la nom...
PYTHON ENHANCEMENT             PROPOSALS• Il   loro acronimo è PEP• Definiscono     regole e convenzioni• Si   trovano all’...
ESPRESSIONI ARITMETICHE• Sono   molto simili a quelle che si scrivono a mano su carta • base  = 50   height = 20   triangl...
ESPRESSIONI CONDIZIONALI• ifespressione_booleana:     fai qualcosa  else:     fai qualcos’altro
ESPRESSIONI BOOLEANE• Espressioni   che ritornano True o False• Qualche     esempio  •a   <b  •a   or b  •a   and b  •a   ...
LISTE• In   Python non parliamo di array ma di liste• Le   liste sono dinamiche• Si   instanziano con  •l   = list()  •l  ...
LISTE• Si   scorrono facilmente• Possono    essere concatenate con l’operatore +• Possono    contenere elementi di tipi di...
LISTE• Agli   elementi si può accedere  • direttamente      con l’indice: l[2] = 3.14  • con   gli slice    • l[1:]   = [P...
TUPLE• Una    tupla è una lista che non si può modificare• Si   instanzia con  •t    = tuple()  •t    = ()• Ha    le stesse...
INSIEMI• Usati   per contenere una sequenza non ordinata di oggetti• Si   instanziano con  •s    = set()• Non     esistono...
INSIEMI• Gli   elementi non sono mai duplicati• Supportano  unione (|), intersezione (&), differenza (-) e differenza simm...
DIZIONARI•I dizionari sono array associativi che contengono oggetti indicizzati da chiavi• Si   instanziano con  •d    = d...
DIZIONARI• Accesso    agli elementi  • d[“nome”]  • d.get(“nome”)• verifica   esistenza di una chiave  • if “nome” in   d
ITERAZIONI• Ciclo    for   • for item in list:        print item• Nel   ciclo for non si gestiscono direttamente gli indic...
ITERAZIONI• Ciclo   while  • while espressione_booleana:      fai qualcosa• Poco    usato, normalmente si usa il for
FILE INPUT• Molto   semplice e immediato•f = open(“nome_file”, “r”) for line in f:    print line f.close()• Nuovo   metodo ...
FILE OUTPUT• L’apertura del file avviene come per l’input ma con “w” al  posto di “r”• si   usa il metodo write() per scriv...
STRINGHE• Possono  essere chiuse tra apici singoli (‘), doppie virgolette (“) e triple virgolette (“””) o tripli apici (‘’...
FUNZIONI• Si   creano con  • def   nome_funzione(a, b):         pass• Opzionalmente    una funzione può ritornare uno o pi...
FUNZIONI• Una   funzione può avere dei valori predefiniti per i parametri • def   function(a = 10, b = 20)• Possiamo   anch...
GENERATORI• Sono come le funzioni, ma invece di restituire un singolo valore, restituiscono una sequenza di valori• Usano ...
GENERATORI• Li possiamo chiamare come normali funzioni, per poi accedere all’elemento successivo col metodo next()• Possia...
OGGETTI• Tutti   i valori usati in un programma Python sono oggetti  • liste  • stringhe  • ecc...• Possiamo     creare de...
CLASSI• Sono    tipi personalizzati• Si   definiscono con  • class  NomeClasse(object):         def __init__(self):        ...
CLASSI• Le   proprietà possono essere definite con • @property   def proprieta(self):      return self.__nome   @proprieta....
CLASSI• L’oggetto   di una classe viene instanziato con  •a   = NomeClasse()•E   i metodi e le proprietà vengono usati con...
CLASSI• Normalmente      ogni elemento della classe è pubblico• Ci   sono due livelli di elementi privati  •_    : privato...
ECCEZIONI• Sono    il modo migliore per controllare il flusso degli errori• Possono    essere catturate con • try:     f = ...
ECCEZIONI• Le   eccezioni possono anche essere sollevate con • raise   IOException(“Eccezione di IO”)• Possiamoanche crear...
MODULI• Si   richiamano con  • import    nome_modulo  • from   nome_modulo import nome_funzione•I   moduli sono funzioni, ...
PACKAGES•I   packages sono collezioni di moduli• Si   richiamano esattamente come i moduli  • import   package.modulo  • f...
Upcoming SlideShare
Loading in …5
×

Corso Python Deltapromo lezione 1

1,774 views

Published on

Prima lezione del corso di programmazione che ho tenuto presso Deltapromo

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,774
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
40
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Corso Python Deltapromo lezione 1

    1. 1. INTRODUZIONE A PYTHON Lezione 1 Paolo Ferretti per Deltapromo URL corso: http://corso-deltapromo.paoloferretti.net/ http://www.paoloferretti.net paolo@paoloferretti.net
    2. 2. PYTHON• Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs.
    3. 3. PERCHÈ PYTHON• Multi-piattaforma • Velocità di sviluppo• Veloce • Produttività • 3xpiù veloce rispetto a • Mantenimento del codice PHP o Ruby • 2x più lento rispetto a Java• Leggibilità del codice
    4. 4. CHI USA PYTHON• NASA • Google• Rackspace (Hosting) • Thawte (certificati digitali)• Industrial Light and Design • Firaxis Games (Civilization) (Star Wars) • Activision (Call of Duty)• Honeywell • http://www.python.org/• Youtube about/quotes/
    5. 5. QUALE VERSIONE?• Ramo 2.x • Ramo 3.x • il più utilizzato • il meno utilizzato • massima compatibilità con • scarsa compatibilità con le librerie esistenti librerie esistenti • installatodi default su • non sempre installato di molte distribuzioni Linux, default Solarie e Mac OS X
    6. 6. QUALE VERSIONE?• Attualmente è meglio sviluppare sul ramo 2.x • Django, SQLAlchemy, Google App Engine e tutte le principali librerie hanno la piena compatiblità •è un ramo stabile e molte caratteristiche del ramo 3.x hanno subito un backport sul ramo 2.x
    7. 7. COME SI INSTALLA• Su Windows • installer scaricabile da python.org • sconsigliato• Su Linux • normalmente è preinstallato • da pacchetti precompilati o da sorgenti
    8. 8. COME SI INSTALLA• Su Mac OS X • preinstallato • macport • sorgenti
    9. 9. DOCUMENTAZIONE• Dal sito ufficiale Python• Libro gratuito “Dive into Python” ( http://it.diveintopython.org/ )
    10. 10. SHELL• L’interprete python, se lanciato da console senza argomenti, apre una shell
    11. 11. SHELL• Il prompt >>> indica che possiamo inziare a lavorare• La shell è utile • per provare piccoli snippets di codice • per leggere la documentazione • nome_funzione?
    12. 12. IPYTHON• Lo strumento che ogni sviluppatore Python deve avere• Vantaggi • colorazione del codice • autocompletamento• Facilmente installabile
    13. 13. INTRODUZIONE AL LINGUAGGIO
    14. 14. VARIABILI• Linguaggio dinamico •itipi delle variabili vengono definiti a runtime e possono variare • una variabile si definisce con • nome_variabile = valore
    15. 15. CONVENZIONI PER LA NOMENCLATURA• Nonostante la tipizzazione dinamica, anche Python ha delle convenzioni per la nomenclatura (maggiori dettagli nella PEP8) • COSTANTI_IN_MAIUSCOLO • snake_case_in_underscore_per_variabili_normali, istanze di oggetti, nomi di funzioni e moduli • CamelCase con prima lettera maiuscola per i nomi delle classi
    16. 16. PYTHON ENHANCEMENT PROPOSALS• Il loro acronimo è PEP• Definiscono regole e convenzioni• Si trovano all’indirizzo http://www.python.org/dev/peps/• Alcune tra le più famose sono le 1, 8, 20, 257, 3000
    17. 17. ESPRESSIONI ARITMETICHE• Sono molto simili a quelle che si scrivono a mano su carta • base = 50 height = 20 triangle_area = (width * height) / 2
    18. 18. ESPRESSIONI CONDIZIONALI• ifespressione_booleana: fai qualcosa else: fai qualcos’altro
    19. 19. ESPRESSIONI BOOLEANE• Espressioni che ritornano True o False• Qualche esempio •a <b •a or b •a and b •a == b
    20. 20. LISTE• In Python non parliamo di array ma di liste• Le liste sono dinamiche• Si instanziano con •l = list() •l =[]
    21. 21. LISTE• Si scorrono facilmente• Possono essere concatenate con l’operatore +• Possono contenere elementi di tipi diversi •l = [1, "Paolo", 3.14, [1, 2]]• Con i metodi insert e append è possibile inserire elementi ad un certo indice oppure appenderli alla fine della lista
    22. 22. LISTE• Agli elementi si può accedere • direttamente con l’indice: l[2] = 3.14 • con gli slice • l[1:] = [Paolo, 3.14, [1, 2]] • l[2:4] = [3.14, [1, 2]] • l[:2] = [1, Paolo]
    23. 23. TUPLE• Una tupla è una lista che non si può modificare• Si instanzia con •t = tuple() •t = ()• Ha le stesse caratteristiche di una lista
    24. 24. INSIEMI• Usati per contenere una sequenza non ordinata di oggetti• Si instanziano con •s = set()• Non esistono indici• Gli elementi possono essere aggiunti con il metodo add() e rimesso col metodo delete()
    25. 25. INSIEMI• Gli elementi non sono mai duplicati• Supportano unione (|), intersezione (&), differenza (-) e differenza simmetrica (^)• Gli elementi possono essere aggiunti con il metodo add() e rimesso col metodo delete()
    26. 26. DIZIONARI•I dizionari sono array associativi che contengono oggetti indicizzati da chiavi• Si instanziano con •d = dict() •d = {}
    27. 27. DIZIONARI• Accesso agli elementi • d[“nome”] • d.get(“nome”)• verifica esistenza di una chiave • if “nome” in d
    28. 28. ITERAZIONI• Ciclo for • for item in list: print item• Nel ciclo for non si gestiscono direttamente gli indici• Ilciclo for itera su qualsiasi cosa implementata come un iteratore
    29. 29. ITERAZIONI• Ciclo while • while espressione_booleana: fai qualcosa• Poco usato, normalmente si usa il for
    30. 30. FILE INPUT• Molto semplice e immediato•f = open(“nome_file”, “r”) for line in f: print line f.close()• Nuovo metodo • withopen(“nome_file”, “r”) as f: for line in f: ...
    31. 31. FILE OUTPUT• L’apertura del file avviene come per l’input ma con “w” al posto di “r”• si usa il metodo write() per scrivere su file
    32. 32. STRINGHE• Possono essere chiuse tra apici singoli (‘), doppie virgolette (“) e triple virgolette (“””) o tripli apici (‘’’)• Tra apici singoli e virgolette non c’è differenza• Le triple virgolette e i tripli apici servono per le stringhe multiriga e per la documentazione• Lestringhe sono liste di caratteri, quindi possiamo agire su di esse come se fossero liste • Quindi valgono concatenazioni, slice, ecc...
    33. 33. FUNZIONI• Si creano con • def nome_funzione(a, b): pass• Opzionalmente una funzione può ritornare uno o più valori con l’istruzione return
    34. 34. FUNZIONI• Una funzione può avere dei valori predefiniti per i parametri • def function(a = 10, b = 20)• Possiamo anche decidere l’ordine in cui chiamare i parametri • function(b=2, a=4)
    35. 35. GENERATORI• Sono come le funzioni, ma invece di restituire un singolo valore, restituiscono una sequenza di valori• Usano yield al posto di return • def countdown(n): while n > 0: yield n n -= 1
    36. 36. GENERATORI• Li possiamo chiamare come normali funzioni, per poi accedere all’elemento successivo col metodo next()• Possiamo lavorarci sopra con un ciclo for
    37. 37. OGGETTI• Tutti i valori usati in un programma Python sono oggetti • liste • stringhe • ecc...• Possiamo creare dei tipi di oggetti personalizzati
    38. 38. CLASSI• Sono tipi personalizzati• Si definiscono con • class NomeClasse(object): def __init__(self): “””io sono il costuttore””” pass def metodo(self, a, b): return a * b
    39. 39. CLASSI• Le proprietà possono essere definite con • @property def proprieta(self): return self.__nome @proprieta.setter def proprieta(self, value): self.__name = value
    40. 40. CLASSI• L’oggetto di una classe viene instanziato con •a = NomeClasse()•E i metodi e le proprietà vengono usati con • a.metodo() • a.proprieta = “Python”
    41. 41. CLASSI• Normalmente ogni elemento della classe è pubblico• Ci sono due livelli di elementi privati •_ : privato per uso interno alla classe • __ : privato, sconsigliato usarlo all’esterno
    42. 42. ECCEZIONI• Sono il modo migliore per controllare il flusso degli errori• Possono essere catturate con • try: f = open(“filename.txt”, “r”) except IOError as e: print e
    43. 43. ECCEZIONI• Le eccezioni possono anche essere sollevate con • raise IOException(“Eccezione di IO”)• Possiamoanche creare le nostre eccezioni, è sufficiente fare una sottoclasse di Exception • class Mia Eccezione(Exception): pass
    44. 44. MODULI• Si richiamano con • import nome_modulo • from nome_modulo import nome_funzione•I moduli sono funzioni, variabili e classi raccolti in un file
    45. 45. PACKAGES•I packages sono collezioni di moduli• Si richiamano esattamente come i moduli • import package.modulo • from package import modulo • from package.modulo import funzione• Un package è una cartella contenente file .py e un file __init__.py

    ×