Prima lezione del corso di programmazione che ho tenuto presso Deltapromo
1 of 45
Downloaded 47 times
More Related Content
Corso Python Deltapromo lezione 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. 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. 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. CHI USA PYTHON
NASA Google
Rackspace (Hosting) Thawte (certi鍖cati digitali)
Industrial
Light and Design Firaxis Games (Civilization)
(Star Wars)
Activision (Call of Duty)
Honeywell
http://www.python.org/
Youtube about/quotes/
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. 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. COME SI INSTALLA
Su Windows
installer scaricabile da python.org
sconsigliato
Su Linux
normalmente 竪 preinstallato
da pacchetti precompilati o da sorgenti
9. DOCUMENTAZIONE
Dal sito uf鍖ciale Python
Libro gratuito Dive into Python
( http://it.diveintopython.org/ )
10. SHELL
Linterprete
python, se lanciato da console senza argomenti,
apre una shell
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. IPYTHON
Lo strumento che ogni sviluppatore Python deve avere
Vantaggi
colorazione del codice
autocompletamento
Facilmente installabile
14. VARIABILI
Linguaggio dinamico
itipi delle variabili vengono de鍖niti a runtime e possono
variare
una variabile si de鍖nisce con
nome_variabile = valore
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. PYTHON ENHANCEMENT
PROPOSALS
Il loro acronimo 竪 PEP
De鍖niscono regole e convenzioni
Si trovano allindirizzo http://www.python.org/dev/peps/
Alcune tra le pi湛 famose sono le 1, 8, 20, 257, 3000
17. ESPRESSIONI ARITMETICHE
Sono molto simili a quelle che si scrivono a mano su carta
base = 50
height = 20
triangle_area = (width * height) / 2
20. LISTE
In Python non parliamo di array ma di liste
Le liste sono dinamiche
Si instanziano con
l = list()
l =[]
21. LISTE
Si scorrono facilmente
Possono essere concatenate con loperatore +
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 鍖ne della lista
22. LISTE
Agli elementi si pu嘆 accedere
direttamente con lindice: 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. TUPLE
Una tupla 竪 una lista che non si pu嘆 modi鍖care
Si instanzia con
t = tuple()
t = ()
Ha le stesse caratteristiche di una lista
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. 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. DIZIONARI
I dizionari sono array associativi che contengono oggetti
indicizzati da chiavi
Si instanziano con
d = dict()
d = {}
27. DIZIONARI
Accesso agli elementi
d[nome]
d.get(nome)
veri鍖ca esistenza di una chiave
if nome in d
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. ITERAZIONI
Ciclo while
while espressione_booleana:
fai qualcosa
Poco usato, normalmente si usa il for
30. FILE INPUT
Molto semplice e immediato
f = open(nome_鍖le, r)
for line in f:
print line
f.close()
Nuovo metodo
withopen(nome_鍖le, r) as f:
for line in f:
...
31. FILE OUTPUT
Lapertura del 鍖le avviene come per linput ma con w al
posto di r
si usa il metodo write() per scrivere su 鍖le
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. FUNZIONI
Si creano con
def nome_funzione(a, b):
pass
Opzionalmente una funzione pu嘆 ritornare uno o pi湛 valori
con listruzione return
34. FUNZIONI
Una funzione pu嘆 avere dei valori prede鍖niti per i parametri
def function(a = 10, b = 20)
Possiamo anche decidere lordine in cui chiamare i parametri
function(b=2, a=4)
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. GENERATORI
Li possiamo chiamare come normali funzioni, per poi accedere
allelemento successivo col metodo next()
Possiamo lavorarci sopra con un ciclo for
37. OGGETTI
Tutti i valori usati in un programma Python sono oggetti
liste
stringhe
ecc...
Possiamo creare dei tipi di oggetti personalizzati
38. CLASSI
Sono tipi personalizzati
Si de鍖niscono con
class NomeClasse(object):
def __init__(self):
io sono il costuttore
pass
def metodo(self, a, b):
return a * b
39. CLASSI
Le propriet possono essere de鍖nite con
@property
def proprieta(self):
return self.__nome
@proprieta.setter
def proprieta(self, value):
self.__name = value
40. CLASSI
Loggetto di una classe viene instanziato con
a = NomeClasse()
E i metodi e le propriet vengono usati con
a.metodo()
a.proprieta = Python
41. CLASSI
Normalmente ogni elemento della classe 竪 pubblico
Ci sono due livelli di elementi privati
_ : privato per uso interno alla classe
__ : privato, sconsigliato usarlo allesterno
42. ECCEZIONI
Sono il modo migliore per controllare il 鍖usso degli errori
Possono essere catturate con
try:
f = open(鍖lename.txt, r)
except IOError as e:
print e
43. ECCEZIONI
Le eccezioni possono anche essere sollevate con
raise IOException(Eccezione di IO)
Possiamoanche creare le nostre eccezioni, 竪 suf鍖ciente fare
una sottoclasse di Exception
class Mia Eccezione(Exception):
pass
44. MODULI
Si richiamano con
import nome_modulo
from nome_modulo import nome_funzione
I moduli sono funzioni, variabili e classi raccolti in un 鍖le
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 鍖le .py e un 鍖le
__init__.py