Post on 22-Jan-2018
PythonPrimi passi
ugo.rinaldi@gmail.com
Interprete
Python è un linguaggio interpretato.
L’interprete Python si avvia digitando python al prompt
dei comandi (pythonx,x in linux, p.e. python3.5)
Per avviare un programma python:
Scrivere il programma con un editor
Salvarlo con un nome file con estensione .py
Digitare python nomeprogramma.py al prompt dei comandi
oppure
(python3.5 nomeprogramma.py al prompt dei comandi linux)
Definizioni
Costante Un dato indicato direttamente dal suo valore.
Es: 100, 0, “acqua”, ‘123’
Le costanti alfanumeriche sono riportate tra virgolette o apici.
Numeri tra virgolette non possono essere usati in calcoli aritmetici
Var / Variabile il nome di una locazione di memoria che contiene o conterrà un dato.
Il nome non può essere un numero
Es: a, b, importo, iva, totale, nome, cognome, 1000.
A e a sono 2 variabili diverse. CASE SENSITIVE
Espressione espressione aritmetica o tra stringhe.
Es: 5+7, (x*y)/2, “cata”+”nia”
Stinga Valore alfanumerico
Intero Valore numerico intero
Float Valore numerico con parte decimale
Visualizzare a video
print(costante/variabile/espressione, …, …)
Print non significa print. CASE SENSITIVE
Visualizza quanto indicato tra parentesi a partire dalla posizione del cursore
portando poi il cursore a capo nella linea successiva
Es: print(“la somma e’ “, s)
print(base*altezza)
print(costante/variabile/espressione, end=‘’)
# non porta a capo il cursore dopo la visualizzazione
Immettere da tastiera
input(messaggio)
Permette l’immissione di una stringa (valori alfanumerici) da tastiera ,
visualizzando il messaggio,
Es: n=input(“Immetti un nome “) # il nome immesso viene
memorizzato nella variabile n
a=eval(input(“immetti un numero “)) # la stringa immessa viene
trasformata in numero
# memorizzato nella variabile a
Le Condizioni
Sono confronti/predicati/affermazioni che saranno verificati. Il risultato di
tale verifica, che avverrà durante l’esecuzione del programma sara:
vero o falso.
Es: a==10 (a uguale 10)
a!=0 (a diverso da zero)
b>c (b maggiore di c)
m<n (m minore di n)
e<=f (e minore o uguale a f)
x>=y (x maggiore o uguale a y)
Le assegnazioni
Assegnano (memorizzano) il risultato di una espressione
alla variabile a sinistra del segno =
Eliminano il valore preesistente
variabile = espressione
Es:
a=10
b=importo*2/100
c=100/d
a=a*2
Gli operandi
+ somma # s=a+b
- sottrazione # d=a-b
* moltiplicazione # p=a*2
/ divisione # q=c/d
% resto di una divisione
102%10>> 2 # r=dd/dv
** elevamento a potenza
2**3 >> 8 # p=b**e
if - Struttura condizionale e alternativa
if condizione :
…istruzione 1
…istruzione 2
…
istruzione 5
if condizione :
…istruzione 1
…istruzione 2
…
else:
…istruzione 3
…istruzione 4
…
istruzione 5
If significa SE.
Esegue istruzione 1 e 2 solo SE la condizione verificata risulta vera.
Dopo, esegue sempre istruzione 5
Esegue istruzione 3 e 4 solo se la condizione verificata risulta falsa
Le istruzioni 1, 2, 3, 4 devono essere rientrate ed allineate
else e istruzione 5, devono essere allineati a if
If - Esempi
if a>b:
c=a-b
else:
c=b-a
d=0
if d!=0:
c=a/d
a=”bye”
Se a è maggiore di b
calcola la differenza tra a e b
altrimenti
calcola la differenza tra a e b
poi comunque azzera d
se d è diverso da 0
calcola il quoziente tra a e d
Poi comunque memorizza “bye” in a
WHILE - Ciclo iterativo
Ripete le istruzioni al suo interno fintantoche la condizione risulterà vera. Appena risulterà falsa, si uscirà dal ciclo. Potrebbe non essere eseguito nemmeno una volta
While condizione: # inizio ciclo…istruzione 1 # fintanto che la condizione risulta vera,
eseguirà ripetutamente le istruzioni 1, 2, ……istruzione 2 # le istruzioni devono essere … rientrate ed allineate
# fine while
… istruzione 5 # istruzione 5, deve essere allineata a while
While - Esempi
while a != “”: # farà immettere fintanto che sarà immesso qualche carattere
a=input(“Immetti un nome “)
# fine ciclo
while True: # ripeti sempre
a=input(“Immetti un nome “)
if a==‘’ : # if obbligatoria per evitare cicli infiniti
break # esce dal ciclo.
# fine ciclo
For - Ciclo iterativo
Ripete le istruzioni al suo interno inizializzando la variabile ad inizio
Ad ogni ciclo la variabile viene incrementata di un certo passo (1 default)
Si esce dal ciclo quando la variabile assume un valore >= a fine.
La variabile all’interno del ciclo non varrà mai fine
Inizio, fine e passo possono essere costanti e/o variabili
for variabile in range(inizio, fine, passo):
…istruzione 1 # finché la variabile sarà nell’intervallo tra inizio e fine-1, ad ogni ciclo incrementata di un certo passo,
…istruzione 2 # eseguirà ripetutamente le istruzioni 1,2, …
… # le istruzioni devono essere rientrate ed allineate
# fine ciclo
… istruzione 5 # istruzione 5, deve essere allineata a while
For - Esempio
for c in range(0,3): # girerà 3 volte
print(c) # visualizzando 0 1 2
# fine ciclo
# perché c nel primo passaggio varrà 0, poi incrementato di 1 varrà 1, poi
# incrementato di 1 varrà 2, infine incrementato di 1 varrà 3, valore che che farà uscire dal ciclo
For – altro esempio
for c in range(10,0,-4): # girerà 3 volte
print(c) # visualizzando 10, 6, 2
# fine ciclo
# perché c nel primo passaggio varrà 10 poi
decrementato di 4 varrà 6
poi decrementato di 4 varrà 2,
infine incrementato di 4 varrà -2,
valore che farà uscire dal ciclo
FUNZIONI d’uso comuneIn PYTHON
int()
Converte un numero o una stringa in numero intero
int(3.1415) # Restituisce 3
int(5) # ‘’ 5
Pi=3.1415
int(Pi) # ‘’ 3
int(60/Pi) # ‘’ 19
int(‘11.78’) # ‘’ 11
float()
Converte un numero o una stringa in numero floating
float(15) # Restituisce 4,0
float(‘1234’) # Restituisce 1234,0
eval()
Determina/Valuta/Converte una stringa contenente un
numero o una espressione restituendo un numero del tipo
opportuno
eval(’15’) # Restituisce 15
eval(‘1234/2’) # Restituisce 617,0
eval(‘180*2’) # Restituisce 360
A=20
eval(‘A/2’) # restituisce 10,0
len()
Determina la lunghezza di una stringa in numero di caratteri
Es:
len(‘milano’) # 6
A=‘manigoldo’
len(A) # 9
Liste
Insieme di dati disposti in sequenza con indice iniziale=0
La lista può contenere dati di tipo diverso
Ogni valore occupa una posizione ed è identificato dalla sua
posizione, la prima ha indice 0
L’indice può essere una costante
Nomi[2], Nomi[0], Nomi[1000] #rispettivamente il secondo, il primo, il
millesimo elemento della lista Nomi
L’indice può essere una variabile
i=5
Nomi[i]
Creare una lista
Può essere dichiara inizialmente vuota
Nomi=[]
Oppure può essere dichiarata ed inizializzata contestualmente
vocali=['a','e','i','o','u'] #crea lista con 5 caratteri
mesi=[31,28,31,30,31,30,31,31,30,31,30,31]
#crea lista con 12 numeri
Aggiungere ed eliminare elementi in
una lista
Elementi possono essere aggiunti alla fine o in una precisa posizione
vocali.append('j') #append nuovo elemento alla lista
vocali.insert(2, ‘y') #inserisce nuovo elemento in posizione 2
Elementi possono essere eliminati tramite la loro posizione
del vocali[3]
Elementi possono essere eliminati tramite il loro valore
vocali.remove(‘y')
Adesso quanti elementi sono presenti nella lista?
len(vocali) #restituisce il numero di elementi presenti nella lista
Gli elementi di una lista
Modificare un elemento della lista
num[5]=789
cont[0]=cont[0]+1
Ordinare gli elementi della lista in ordine crescente
nomi.sort()
Invertire l’ordine degli elementi della lista
nomi.reverse()
10 in importi
'i' in vocali
Restituiscono True se la lista contiene il valore cercato
Altre operazioni con le liste
Aggiungere elementi da un’altra lista
lista2=vocali + ['j','y']
Lista3=lista1 + lista2
Creare una lista di caratteri estratti da una stringa
lista=list("abcdfghilmnopqrstuvz")
Genera la lista [0,3,6,9]
list(range(0,10,3)
Gestione semplice degli errori
La struttura
try:
…istruzione da gestire
except Exception:
…cosa fare in caso di errore
Esempio:
a=“paola”
try:
a=a+1
except Exception:
print("errore: la variabile a non è di tipo numerico ")
File di testo
Operazioni principali sui file:
Apertura
Chiusura
Lettura
Scrittura
Apertura
Apre un file in una data modalità creando un oggetto: oggetto=open(nomefile, modo)
Il modo può essere:
'r' open for reading (default) #‘r+’, ‘r+b’
'w' open for writing, truncating the file first
'x' open for exclusive creation, failing if the file already exists
'a' open for writing, appending to the end of the file if it exists
'b' binary mode
't' text mode (default)
'+' open a disk file for updating (reading and writing)
f=open("alunni.txt",'r+')
Chiusura
Chiude un oggetto aperto in precedenza
oggetto.close()
Chiudere sempre un oggetto se non più necessario
f.close()
Lettura e scrittura
obj.readline() #legge una linea dal file
obj.read(n) #legge n caratteri dal file o, se n è omesso, fino alla fine
obj.write(variabile) #scrive nel file la variabile specificata
Esempio
f=open("nomi.txt",'r+') # ‘a’
rec=‘.’
while rec:
rec=f.readline()
print(rec,end="")
while True:
n=input("Immetti un nome ")
if n=="":
break
f.write(n+’\n’)
f.close()
Link utili
https://doc.python.org
www.python.it
www.html.it/guide/guida-python/