Sei sulla pagina 1di 15

Laboratorio di Sperimentazioni

di Fisica I Mod. A

02A Introduzione a Python (bis)

13 Ottobre 2016
Documentazione
Per alcuni argomenti ed esempi potete vedere il Python
Tutorial:
http://docs.python.org/tutorial/index.html
In inglese, ma il pi aggiornato

Oggi vedremo (parte del) le sezioni 3.1.2 (Strings) 3.1.4


(Lists)

Laboratorio Sperimentazioni di Fisica I Mod A 2


Lanciamo IDLE
Al prompt dei comandi della shell digitiamo
idle

Laboratorio Sperimentazioni di Fisica I Mod A 3


Operazioni con le stringhe
Le stringhe possono essere delimitate da apici doppi o singoli
>>> 'una stringa'
'una stringa'
>>> "Un'altra stringa"
'Un'altra stringa'
>>> "Una stringa \
su piu` \
righe."
'Una stringa su piu` righe.'

>>> "Concatenazione "+"di"+" stinghe."


'Concatenazione di stinghe.'
>>> "ciao, "*3+"mare!"
'ciao, ciao, ciao, mare!'

>>> # Lunghezza di una stringa


>>> len("Una stringa di caratteri")
24

Laboratorio Sperimentazioni di Fisica I Mod A 4


Operazioni con le stringhe (2)
Si pu accedere ai singoli caratteri di una stringa tramite loperatore di
indicizzazione []. Gli indici iniziano da 0 e arrivano fino alla lunghezza della
stringa -1. Si pu indicizzare a partire dalla fine della stringa usando indici
negativi:
>>> a = Una stringa'
>>> a[0]
U
>>> a[10]
'a
>>> a[-1]
'a'
>>> a[-2]
'g'

Laboratorio Sperimentazioni di Fisica I Mod A 5


Operazioni con le stringhe (4)
Si pu prendere una parte (slice) di una stringa usando :.
>>> a[:3] # Dallinizio fino al carattere nr 3 escluso
'Una'
>>> a[4:] # Dal carattere nr 4 fino alla fine
'stringa
>>> a[6:10]
'ring
>>> a[-2:]
'ga
>>> a[:-3]
'Una stri'

Laboratorio Sperimentazioni di Fisica I Mod A 6


Operazioni con le stringhe (3)
Per meglio capire come funzionano le slice, si pu pensare che gli
indici puntino tra i caratteri:

+---+---+---+---+---+
| H | e | l | l | o |
+---+---+---+---+---+
0 1 2 3 4 5
-5 -4 -3 -2 -1

Laboratorio Sperimentazioni di Fisica I Mod A 7


Operazioni con le stringhe (5)
Le stringhe sono immutabili, una volta assegnato un valore non pu essere
cambiato:
>>> a = Una stringa
>>> a[0]='I'

Traceback (most recent call last):


File "<pyshell#85>", line 1, in <module>
a[0]='I'
TypeError: 'str' object does not support item assignment

A questo si pu ovviare assegnando un nuovo valore alla variabile:

>>> a='I'+a[1:]
>>> a
'Ina stringa'

Laboratorio Sperimentazioni di Fisica I Mod A 8


Liste
Una lista un tipo di dato composto: raggruppa altri
tipi di dati.
Si scrive come una lista di valori separati da virgola e
racchiusi tra parentesi quadre:

>>> myList = [ 1, 1.0, 'one', 100, 123.4]


>>> myList
[1, 1.0, 'one', 100, 123.4]

Laboratorio Sperimentazioni di Fisica I Mod A 9


Liste (2)
Si indicizzano, se ne possono estrarre fette (slices) e
si concatenano nello stesso modo delle stringhe.

>>> myList = [ 1, 1.0, 'one', 100, 123.4]


>>> myList[0]
1
>>> myList[-2]
100
>>> myList[-3:]
['one', 100, 123.4]
>>> myList[2:3]+['slice', 'of', 'cake']
['one', 'slice', 'of', 'cake']
>>> 3*myList[-2:]
[100, 123.4, 100, 123.4, 100, 123.4]

Laboratorio Sperimentazioni di Fisica I Mod A 10


Liste (3)
A differenza delle stringhe, le liste non sono immutabili.
Si possono cambiare elementi di una lista
individualmente o a slice.
Quindi si pu anche cambiare la lunghezza di una lista.

>>> myList = [ 1, 1.0, 'one', 100, 123.4]


>>> myList[0] = 2
>>> myList
[2, 1.0, 'one', 100, 123.4]
>>> myList[0:2]=[2,2.0]
>>> myList
[2, 2.0, 'one', 100, 123.4]

Laboratorio Sperimentazioni di Fisica I Mod A 11


Liste (4)
>>> myList
[2, 2.0, 'one', 100, 123.4]
>>> # Rimuovere lultimo elemento dalla lista
>>> myList[-1:]=[]
>>> myList
[2, 2.0, 'one', 100]
>>> # Inserire alcuni elementi
>>> myList[3:3] = ['two', 'three']
>>> myList
[2, 2.0, 'one', 'two', 'three', 100]
>>> # Inserire una copia della lista in se` stessa
>>> # allinizio
>>> myList[0:0] = myList
>>> myList
[2, 2.0, 'one', 'two', 'three', 100, 2, 2.0, 'one', 'two',
'three', 100]

Laboratorio Sperimentazioni di Fisica I Mod A 12


Liste (5)
>>> myList
[2, 2.0, 'one', 'two', 'three', 100, 2, 2.0, 'one', 'two',
'three', 100]
>>> # Lunghezza (numero di elementi) della lista
>>> len(myList)
12
>>> # Le liste si possono "annidare", ovvero
>>> # "mettere una dentro l'altra"
>>> a = [1, 2, 3]
>>> b = [a, 4, 5, 6]
>>> b
[[1, 2, 3], 4, 5, 6]
>>> # Notare la lunghezza di b
>>> len(b)
4

Laboratorio Sperimentazioni di Fisica I Mod A 13


Liste (6)
>>> b
[[1, 2, 3], 4, 5, 6]
>>> # Questo ritorna una lista
>>> b[0]
[1, 2, 3]
>>> # Questo ritorna il primo elemento della lista
>>> # annidata
>>> b[0][0]
1

Laboratorio Sperimentazioni di Fisica I Mod A 14


Liste (7)
>>> # Altre operazioni con le liste
>>> # append(x) aggiunge un item alla fine della lista
>>> # equivalente a a[len(a):] = [x]
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> # extend(L) aggiunge la lista L alla fine
>>> # equivalente a a[len(a):] = L
>>> b = [5, 6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

Laboratorio Sperimentazioni di Fisica I Mod A 15